在WPF中处理未处理的异常

10 浏览
0 Comments

在WPF中处理未处理的异常

此问题已有答案

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

有时候,在无法重现的情况下,我的WPF应用程序会突然崩溃,而没有任何信息提示。应用程序会直接关闭。

最好在哪里实现全局的Try/Catch块?至少我必须实现一个带有信息:\"抱歉造成不便...\"的消息框。

admin 更改状态以发布 2023年5月21日
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线程。 这是相当奇特的情况,如果您不确定自己是否正在使用,则很可能您没有。

0