2010-09-04 62 views
2

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

+0

可能的重复[全局捕获WPF应用程序中的异常?](http://stackoverflow.com/questions/793100/globally-catch-exceptions-in-a-wpf-application) – 2010-09-04 01:17:36

回答

1

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

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

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


编辑:我也请你阅读an answer to a related question大约在WPF全球try/catch块。在写我的答案时有一些我不知道的有用的东西。

+0

谢谢,挂钩事件非常棒! – 2010-09-04 03:08:56

+0

事实上,只要你不忽略它们,它就能很好的吸引所有的异常。您需要一个顶级try/catch块,在关闭之前记录致命异常。 – 2010-09-09 09:30:02

相关问题