C# 如果我没有';我不知道它会扔到哪里?

C# 如果我没有';我不知道它会扔到哪里?,c#,wpf,exception,logging,exception-handling,C#,Wpf,Exception,Logging,Exception Handling,我们已经向客户部署了一个WPF应用程序。但是,应用程序会随机崩溃,导致客户计算机上出现“意外错误”对话框。我们需要能够看到异常消息,最好是堆栈跟踪,但是因为它是随机崩溃的,所以我们不知道应该将try/catch检查放在哪里,以便记录它。我们正在使用NLog进行日志记录。我的问题是,我们有没有办法将NLog配置为捕获代码未处理的所有异常,或者使用其他方法来执行此操作?为什么不放置一个覆盖整个代码的全局try/catch块 由于它是一个WPF应用程序,因此可能需要进行一些更改。与其让WPF自动打开主

我们已经向客户部署了一个WPF应用程序。但是,应用程序会随机崩溃,导致客户计算机上出现“意外错误”对话框。我们需要能够看到异常消息,最好是堆栈跟踪,但是因为它是随机崩溃的,所以我们不知道应该将try/catch检查放在哪里,以便记录它。我们正在使用NLog进行日志记录。我的问题是,我们有没有办法将NLog配置为捕获代码未处理的所有异常,或者使用其他方法来执行此操作?

为什么不放置一个覆盖整个代码的全局try/catch块

由于它是一个WPF应用程序,因此可能需要进行一些更改。与其让WPF自动打开主窗口,不如删除App.xaml文件,并从应用程序起点(try/catch内部)通过代码打开窗口

请注意,这不是一个好的实践(就像捕获所有异常通常是不好的),但可能是一个临时的解决方法,用于查找崩溃发生的位置


编辑:我还邀请您阅读WPF中的全局try/catch块。有一些有用的东西我在写我的答案时不知道。

可能重复的事实上,捕捉所有异常是很好的,只要你不忽略它们。您需要一个顶级try/catch块,该块在关闭前记录致命异常。