0

別のスレッドによって情報を挿入する論理レイヤーに関数があり、そのスレッドで不明な例外が発生した場合にそれをスローしたいのですが、問題は、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
    {


    }
}
4

1 に答える 1