我以前使用过Application.ThreadException
,AppDomain.CurrentDomain.UnhandledException
但通常我只将它用于单个表单。所以通常我会使用Main
in Program.cs
。
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");
}
然而,在我的新情况下,我有许多用于当前项目的表单,其中一个基本表单是其他表单继承的。
我想要做的是处理从基本形式的代码中以派生形式抛出的异常 - 我将上面的代码放入我的基本构造函数中,希望我可以这样做,但是当出现异常时,它不会击中事件。
为什么我不能在构造函数和任何替代方案中这样做?
注意:我之前问过这个问题,Vb.net
而不是C#
删除了我之前的问题并重构了我的代码,以便我可以得到C#
答案。