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

相關問題