0

次のコードは、本来のように機能しません。

get
{
    try
    {
        foreach (object o in NullObjectList)
        {
            if (o.Property)
            {
                return true;
            }
        }
    }
    catch (NullReferenceException) {}

    return false;
}

NullObjectList を反復処理しようとすると、Visual Studio が一時停止して中断するのはなぜですか? 通常、例外をキャッチして先に進みます。これについて何がユニークですか?

編集:別の解決策は、オブジェクトが null かどうかを確認することですが、このシナリオで try-catch が機能しない理由についてはまだ興味があります。

4

1 に答える 1

1

期待どおりに動作します。例外が発生し、例外が適切にキャッチされても、Visual Studio は壊れません。例外ダイアログで「共通言語ランタイム例外」がスローされるように設定されていませんか? Visual Studio 2008 と 2012 で試しました。

于 2013-06-10T02:41:28.350 に答える