.net - DispatcherUnhandledException 和 AppDomain.UnhandledException 何时不足(WPF 应用程序)?

标签 .net wpf unhandled-exception

我已经 Hook 了这两个,但有时我的应用程序仍然崩溃,只是抛出 Windows“发生异常”对话框。当我单击“确定”时,应用程序就会退出。在什么情况下这两个处理程序(在 WPF 应用程序中)不会捕获异常?

我应该提到我正在做一堆 COM 互操作,所以这总是值得怀疑的:-)

最佳答案

有几个原因可以解释为什么其中任何一个都不会引发未处理的异常。

仅当通过 Invoke 或 BeginInvoke 调用 ( documentation ) 输入方法的调度程序外观中发生异常时,才会引发 Dispatcher.UnhandledException 。因此,未以这种方式调用的其他线程或方法上的异常将错过此事件处理程序。

.Net 还在 4.0 中对进入 AppDomain.UnhandledException 事件的异常进行了更改。访问冲突和堆栈溢出等损坏的状态异常不再通过此事件。

我不确定其中任何一个是否与您相关。最简单的检查方法是附加一个调试器并查看它产生什么输出。

关于.net - DispatcherUnhandledException 和 AppDomain.UnhandledException 何时不足(WPF 应用程序)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576974/

相关文章:

wpf - 使用小数分隔符格式化 XAML 中的值?

docker - 跨 Docker 容器重新启动的持久日志

c++ - 在 visual studio 2010 上使用 opencv 进行球跟踪会出现未处理的异常

c++ - 未处理的异常 - 强制程序退出

c# - 使用 LINQ 对列表中的项目进行排名

c# - DateTimePicker 能够仅选择一周中的特定几天

c# - .NET CSV uploader 允许空值

c# - 为什么 C# 容器和 GUI 类对与大小相关的成员使用 int 而不是 uint?

c# - 如何创建具有相对宽度值的动态 ColumnDefinitions?

c# - 如何使数据网格在控件中看到编辑?