別のスレッドによって情報を挿入する論理レイヤーに関数があり、そのスレッドで不明な例外が発生した場合にそれをスローしたいのですが、問題は、UnhandledExceptionEventHandler
一般的な例外を取得するアプリケーションでこのエラーが発生し、私もしたくないことですアプリケーションをシャットダウンします。
多くの UI コンポーネントがこれを必要とするため、呼び出しスレッドは STA でなければなりません。
///////////////////// this is my function in logical layer //////////
public string MahaleInsert(Mahales Mahale)
{
Thread t = new Thread(delegate()
{
try
{
Mahale.OutMessage = DA_Agency.MahaleInsertDB(Mahale);
Mahale.OutMessage = "SuccessInsert";
}
catch (Exception ex)
{
if (ex.Message.ToLower().Contains("violation of unique key constraint"))
Mahale.OutMessage = "MahaleInsUniqueError";
else
throw;
}
});
t.Start();
t.Join();
return Mahale.OutMessage;
}
//////////////////////////// this in my aplication level //////////////////
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
string messsage = GeneralMethod.CatchException(e.ExceptionObject as Exception);
MessageClass.MessageBox(messsage);
}
catch
{
}
}