我試圖捕獲在C#Windows窗體應用程序中的所有無關例外。我已將以下代碼添加到Program.cs
文件中,但未捕獲到異常,我收到異常,例如NullReferenceException
。 我在做什麼錯?無法捕獲在Winforms中的未處理的異常
static void Main()
{
System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
System.Windows.Forms.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnGuiUnhandedException);
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
var form = new MainForm();
form.ShowDialog();
}
private static void HandleUnhandledException(Object o)
{
// TODO: Log it!
Exception e = o as Exception;
if (e != null)
{
}
}
private static void OnUnhandledException(Object sender, UnhandledExceptionEventArgs e)
{
HandleUnhandledException(e.ExceptionObject);
}
private static void OnGuiUnhandedException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
HandleUnhandledException(e.Exception);
}
編輯:我能捕捉到的異常程序的Visual Studio之外的外部運行時,但是從Visual Studio調試運行時,我不能趕上Exception.I知道調試是錯誤removal.Should我運行程序在構建模式下捕獲異常?
郵政編碼,實際上重現了問題。 –