我们有一个我们已经部署给客户的WPF应用程序。但是,该应用程序在客户的计算机上随机出现一个“意外错误”对话框。我们需要能够看到异常消息,最好是堆栈跟踪,但由于它随机崩溃,我们不知道应该在哪里放置try/catch检查,以便我们可以记录它。我们正在使用NLog进行日志记录。我的问题是,有没有办法让我们配置NLog来捕获所有未被我们的代码处理的异常,或者其他一些方法呢?当我不知道它可能抛出的位置时,如何记录异常?
2
A
回答
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
相关问题
- 1. 如何知道Html抛出的异常?
- 2. 当IQueryable不返回任何记录时ToList()抛出异常
- 3. 何时抛出异常以及何时记录它们?
- 4. Java中的Iterator如何知道何时抛出ConcurrentModification异常
- 5. 如何知道什么时候抛出异常
- 6. 我可以记录org.springframwork.jdbc抛出的SEVERE异常吗?
- 7. 可能会抛出异常
- 8. BufferedReader抛出异常,我不知道为什么
- 9. WinForms上的DataGridView在我删除记录时抛出异常
- 10. getView()不能抛出异常
- 11. 如何在grails中不会抛出异常而记录stackTrace
- 12. 应该记录代码抛出异常?
- 13. 当不抛出异常时的性能(C++)
- 14. 如何找出抛出异常的位置?
- 15. 当我的Web服务关闭时,Nusoap不会抛出异常!
- 16. 当db中的值为null时,我可以配置NHibernate抛出异常吗?
- 17. 当属性设置器不允许时抛出什么异常?
- 18. 抛出Silverlight异常(ARG_ARGUMENTEXCEPTION),不知道为什么或在哪里
- 19. ServerSocket.close()。它什么时候抛出异常?
- 20. BackgroundTaskCompletedEventArgs.CheckResult何时抛出异常?
- 21. 何时抛出异常?
- 22. 当你知道你调用的方法会抛出同样的东西时,你会抛出异常吗?
- 23. 垫位图抛出异常
- 24. ARM链接器如何知道异常表停止的位置?
- 25. 当抛出异常时类变为空
- 26. 当抛出异常时gzip/deflate失败
- 27. 当异常被抛出
- 28. 应该抛出异常并处理,如果它不能发生?
- 29. 如何在抛出异常后记录详细信息?
- 30. ZK:当抛出异常模态窗口不能正常工作
可能的重复[全局捕获WPF应用程序中的异常?](http://stackoverflow.com/questions/793100/globally-catch-exceptions-in-a-wpf-application) – 2010-09-04 01:17:36