内のすべてのスレッドの例外を処理、私はテストコードを以下しているWinformsの
private void button3_Click(object sender, EventArgs e)
{
Thread obj = new Thread(exception);
obj.Start();
}
void exception()
{
try
{
int i = 0;
int k = i/i;
}
catch (Exception ex)
{
throw ex;
}
}
private void button4_Click(object sender, EventArgs e)
{
int i = 0;
int k = i/i;
}
そして、私のメインのコードは、この
[STAThread]
static void Main()
{
Application.ThreadException += Form1_UIThreadException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static void Form1_UIThreadException(object sender, ThreadExceptionEventArgs e)
{
MessageBox.Show("Exception");
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// MessageBox.Show("Exception UI");
}
のようなものであるとしても、私は、アプリケーションがスレッド例外でクラッシュし、両方の例外を扱っています。
スレッドの例外を処理するために必要な修正があるかどうか。
多分* "Windowsフォームが作成し所有していないスレッドで発生する例外をキャッチするには、UnhandledExceptionイベントハンドラを使用してください。" * https://msdn.microsoft.com/en-us/library/system.windows.forms .application.threadexception(v = vs.110).aspx –