0
以前我使用過Application.ThreadException
和AppDomain.CurrentDomain.UnhandledException
,但通常我只將它用於單個表單。所以通常我會使用Program.cs
中的Main
。在構造函數中使用線程異常和應用程序域未處理的異常
try {
AppDomain.CurrentDomain.UnhandledException += (sender, e) => .Handle(sender, (Exception)e.ExceptionObject);
Application.ThreadException += (sender, e) => ExceptionHandler.Handle(sender, e.Exception);
Application.Run(ApplicationBase);
} catch (Exception ex) {
MessageBox.Show("Handled Exception");
}
在我的新情況,但是我有我的當前項目的主機形式與一個單一的基本形式,其他形式繼承。
我想要做的是處理從基礎表單中的代碼中派生的形式拋出的異常 - 我將上面的代碼plongked到我的基礎的構造函數希望我可以這樣做,但是當有異常時,它不會發生事件。
爲什麼我不能在構造函數和任何其他方法中做到這一點?
注:我以前問這Vb.net
,而不是C#
所以刪除了我剛纔的問題和重構我的代碼,所以我可以有一個C#
答案。
但是你需要調用'Applicaiton.Run(Form)',並且我有多個可能被運行的窗體 - 所以我想在Base窗體中處理它,可能會運行。 – LukeHennerley
@LukeHennerley:這些是**全球**事件。它們適用於在UI線程上運行的所有**代碼。 – SLaks