当我不知道它可能抛出的位置时,如何记录异常?

时间:2010-09-04 01:00:42

标签: c# wpf exception logging exception-handling

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

1 个答案:

答案 0 :(得分:1)

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

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

请注意,这不是一个好习惯(比如通常很难捕获所有异常),但可能是一个临时解决方法,可以找到发生崩溃的位置。


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