這是我的上下文:如何將全局異常處理添加到加載項DLL?
- 我正在爲應用程序編寫一個WPF加載項。
- 此應用程序的主線程是非託管的。
- 我想爲此加載項添加一個全局異常處理系統來處理任何未處理的異常。
這是我做過嘗試,但不工作:
- 我可以在try-catch塊不添加到我的Application.Run()代碼行。因爲我是一個加載項,該代碼片段位於應用程序中。
- System.Windows.Forms.Application.ThreadException不起作用。可能不存在WinForm應用程序。 (WPF託管在非託管代碼中。)
- AppDomain.CurrentDomain.UnhandledException不起作用。因爲它可能是由應用程序本身處理的。它只是不輸入我的代碼。
因此,對於這種情況的任何想法?
謝謝你的回答。你是對的,我不應該爲這個應用程序添加全局異常處理。但是有什麼辦法可以將「全局」異常處理系統添加到我的加載項區域 - 只有我的加載項引發的異常纔會進入該系統。 僅向我的條目添加try-catch塊是不夠的,因爲我在我的加載項的GUI中有一堆行爲。 非常感謝您的意見。 – redjackwong 2010-01-11 07:46:01
您可以使用PostSharp自動爲您的所有代碼添加類似try-catch的行爲 - 甚至包括屬性,轉換器,行爲和用戶/自定義控件中的代碼 - 以便覆蓋大多數情況,對於拋出的異常我沒有很好的解決方案通過GUI內的其他人的代碼 – Nir 2010-01-11 08:48:09