<分区>
有时,在不可重现的情况下,我的 WPF 应用程序会在没有任何消息的情况下崩溃。该应用程序会立即关闭。
哪里是实现全局 Try/Catch block 的最佳位置。至少我必须实现一个消息框:“抱歉给您带来的不便......”
<分区>
有时,在不可重现的情况下,我的 WPF 应用程序会在没有任何消息的情况下崩溃。该应用程序会立即关闭。
哪里是实现全局 Try/Catch block 的最佳位置。至少我必须实现一个消息框:“抱歉给您带来的不便......”
最佳答案
您可以在不同级别捕获未处理的异常:
AppDomain.CurrentDomain.UnhandledException
来自 AppDomain 中的所有线程。Dispatcher.UnhandledException
来自单个特定的 UI 调度程序线程。Application.Current.DispatcherUnhandledException
来自 WPF 应用程序中的主 UI 调度程序线程。TaskScheduler.UnobservedTaskException
来自每个使用任务调度程序进行异步操作的 AppDomain。您应该考虑需要在哪个级别捕获未处理的异常。
在 #2 和 #3 之间做出决定取决于您是否使用多个 WPF 线程。这是一个非常奇特的情况,如果您不确定自己是否是,那么很可能您不是。
关于c# - WPF 全局异常处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40480175/