【问题标题】:Exception Error Dialog异常错误对话框
【发布时间】:2012-09-08 10:40:19
【问题描述】:

我想知道为什么在 .NET(C# 或 VB.NET 应用程序)中发生未处理的异常时,在某些计算机上为什么会显示不同的对话框。

例如,在某些计算机上显示类似于:

在其他地方,它显示如下:

我想在将我的应用程序用于某些特定目的的所有系统中的第二个(您的应用程序中发生未处理的异常)中显示它。

请不要建议使用全局异常处理方法。

【问题讨论】:

  • @jgauffin 不仅是本机应用程序和 .NET 应用程序。第一种类型的对话框出现在我的应用程序上的一些客户端计算机上(用 c# 编码),而在其他计算机上显示我需要的第二种类型的对话框(jit)
  • 为什么你会如此坚决地更喜欢我们为这类事情提供一个全局异常处理程序?您可以创建自己的错误对话框并根据自己的喜好进行设计。

标签: c# .net windows vb.net


【解决方案1】:

好吧,您标记为正确的行为可以通过启用和禁用 JIT(即时调试器)来控制。

也许这可以帮助你,或者只是让你走上正轨:MSDN: How to: Enable/Disable Just-In-Time Debugging

我没有任何建议,但实践是最终用户应该永远遇到这种异常,尤其是堆栈跟踪。

【讨论】:

  • 您好,但这是针对安装了 Visual Studio 的计算机。正确的?在没有安装 Visual Studio 的计算机上如何获得相同的对话框?
  • @WalterBoss 您需要将可能引发错误的代码包装在 try-catch 块中,然后在消息框或自定义表单中显示信息。
  • @Tibi,我知道。但出于某种特定原因,我想知道如何获得这种类型的对话框
  • @Walter 老实说,我不确定您是否需要安装 VS。 [link] msdn.microsoft.com/en-us/library/5hs4b7a6(v=vs.80).aspx [/link] 说“即时调试是一种功能,当在 Visual Studio 外部运行的程序遇到致命错误时,它会自动启动 Visual Studio 调试器。”但它也指出:“...使用注册表编辑器删除以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger 在非 VS 机器上是有这些钥匙吗?
【解决方案2】:

某些应用程序启用了 JIT 调试:

http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx

具体来说,您可以在 .NET app.config 中添加:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多