c# - WPF 全局异常处理程序

标签 c# .net wpf exception

<分区>

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

哪里是实现全局 Try/Catch block 的最佳位置。至少我必须实现一个消息框:“抱歉给您带来的不便......”

最佳答案

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

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

您应该考虑需要在哪个级别捕获未处理的异常。

在 #2 和 #3 之间做出决定取决于您是否使用多个 WPF 线程。这是一个非常奇特的情况,如果您不确定自己是否是,那么很可能您不是。

关于c# - WPF 全局异常处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40480175/

相关文章:

c# - 为什么我不能在 C# 中重载 += 运算符?但我还能用吗?

c# - 使用鼠标滚轮 XNA 缩放图像

c# - 在 WPF 中向鼠标方向旋转图形(如模拟表盘)

.net - 为什么 WPF 会吞下在 Window.Activated 的事件处理程序中抛出的异常?

c# - 简单对象和数组是如何传递的?

c# - 需要将 C++ 转换为 C# 的帮助

c# - 如何在不使用 Entity Framework 的情况下使用 ASP NET MVC5 显示 SQL Server 中的表?

c# - 使用 System.Net.WebClient 读取页面内容时,有没有办法指定文化?

c# - WPF/C# - 向列表框中动态创建的按钮添加功能

c# - 如何在所有应用程序中模拟键盘输入?