"Application wide exception handling(应用程序范围的异常处理)"

12 浏览
0 Comments

"Application wide exception handling(应用程序范围的异常处理)"

这个问题已经有答案了:

在WPF应用程序中全局捕获异常?

有时,在无法重现的情况下,我的 WPF 应用程序会崩溃,而没有任何消息。应用程序会立即关闭。

在哪里实现全局 Try/Catch 块是最好的地方。至少我必须实现一个带有:\"对于不便之处,很抱歉...\" 的消息框。

admin 更改状态以发布 2023年5月21日
0
0 Comments

您可以处理AppDomain.UnhandledException事件。

编辑:实际上,这个事件可能更加适用:Application.DispatcherUnhandledException

0
0 Comments

您可以在不同的级别上捕获未处理的异常:

  1. AppDomain.CurrentDomain.UnhandledException 来自AppDomain中的所有线程。
  2. Dispatcher.UnhandledException 来自单个特定的UI dispatcher线程。
  3. Application.Current.DispatcherUnhandledException 来自您的WPF应用程序中的主UI dispatcher线程。
  4. TaskScheduler.UnobservedTaskException 来自使用任务计划程序进行异步操作的每个AppDomain。

您应该考虑在什么级别上捕获未处理的异常。

在#2和#3之间做出决定取决于您是否使用了多个WPF线程。这是相当奇特的情况,如果您不确定是否使用了多个线程,则最有可能没有使用。

0