我們有一個我們已經部署給客戶的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. 當它們被提出時,是否有可能記錄異常?
- 3. 當IQueryable不返回任何記錄時ToList()拋出異常
- 4. 何時拋出異常以及何時記錄它們?
- 5. 使用ELMAH時不會拋出異常記錄異常
- 6. 如何知道什麼時候拋出異常
- 7. 不知道如何拋出這個ArrayIndexOutOfBounds異常
- 8. 我可以記錄org.springframwork.jdbc拋出的SEVERE異常嗎?
- 9. 可能會拋出異常
- 10. BufferedReader拋出異常,我不知道爲什麼
- 11. 拋出Java -NullPointerException異常,我不知道爲什麼
- 12. WinForms上的DataGridView在我刪除記錄時拋出異常
- 13. 如何知道什麼異常AWS的API拋出
- 14. runable.run()不能拋出異常
- 15. getView()不能拋出異常
- 16. 如何在grails中不會拋出異常而記錄stackTrace
- 17. Clojure拋出一個異常,當我不期望它
- 18. 應該記錄代碼拋出異常?
- 19. 拋出異常與日誌記錄
- 20. 我應該如何記錄不是由某個方法/構造函數拋出的異常,而是可能被另一個被調用的異常拋出?
- 21. 當不拋出異常時的性能(C++)
- 22. 如何找出拋出異常的位置?
- 23. 如何處理不可能拋出的已檢查異常
- 24. 拋出異常不拋出
- 25. 。不知道它可能是
- 26. 我如何猜測可能在C++中拋出的所有可能的異常?
- 27. 當我的Web服務關閉時,Nusoap不會拋出異常!
- 28. JPA如何知道何時拋出OptimisticLockException?
- 29. 當db中的值爲null時,我可以配置NHibernate拋出異常嗎?
- 30. 異常拋出位置0沒有行
可能的重複[全局捕獲WPF應用程序中的異常?](http://stackoverflow.com/questions/793100/globally-catch-exceptions-in-a-wpf-application) – 2010-09-04 01:17:36