WPF 和 Application.ThreadException

13 浏览
0 Comments

WPF 和 Application.ThreadException

该问题已经在此处有答案:

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

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

在哪里实现全局Try/Catch块是最好的位置。至少我必须实现一个带有:“对不起造成的不便...”消息框。

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

你可以处理AppDomain.UnhandledException事件

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

0
0 Comments

您可以在不同层面捕获未处理的异常:

  1. AppDomain.CurrentDomain.UnhandledException 来自于应用程序域中的所有线程。
  2. Dispatcher.UnhandledException 来自于单个特定的UI调度程序线程。
  3. Application.Current.DispatcherUnhandledException 来自于您的WPF应用程序中的主UI调度程序线程。
  4. TaskScheduler.UnobservedTaskException 来自于每个使用任务调度程序执行异步操作的应用程序域内部。

您应该考虑在哪个层面上捕获未处理的异常。

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

0