-3

TextBox の LostFocus イベントを作成すると、NotImplementedException()が追加されます。この例外をキャッチするにはどうすればよいですか? 私のコードは次のとおりです。

void marks_LostFocus(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

編集済み

私が聞きたかった質問は、lostFocus のイベントを作成すると、VS が自動的にこの行を追加するということです。学術的に言えば。この例外はどこでキャッチできますか。また、その用途は何ですか。VS がこの行を自動的に追加するのはなぜですか

4

4 に答える 4

1

try/catchをラップしますか?

void marks_LostFocus(object sender, EventArgs e)
{ 
    try
    {
        throw new NotImplementedException();
    }
    catch(Exception ex)
    {
        // handle ex
    }
}
于 2013-03-27T08:37:29.330 に答える
0

ハンドラー自体からこの例外をキャッチするのは無意味です。呼び出し元のコードから例外を管理するのは理にかなっています。ただし、単に必要ないように思われます。私がこれを目にする文脈を考えると、それはまったく何の役にも立ちません。コードを削除することで、この例外を防ぐことができます。

このブロックで行うことは、独自のロジックを実装することです。つまり、それを実装します。

于 2013-03-27T08:45:15.773 に答える
0

サブスクライバー メソッドがスローする未処理の例外をすべてキャッチできるのは、イベントをトリガーするメソッドだけです。使用できるフォールバック ソリューションもあります。

Application.ThreadExceptionイベントをサブスクライブします。

Program.cs で:

Application.ThreadException += OnThreadException


private static void OnThreadException(object sender, ThreadExceptionEventArgs e)
{
    MessageBox.Show(e.Exception.ToString());
}
于 2013-03-27T08:38:01.557 に答える
0

まず、このメソッドを実装できます。

ただし、ハンドルされていない例外を処理したい場合は、自分または他のグローバル例外ハンドラーのハンドルされていない例外イベントを使用してみてください。AppDomain

于 2013-03-27T08:39:51.570 に答える