19

次のようなコードがあるとします。

try
{
    for (int i = 0; i < 10; i++)
    {
        if (i == 2 || i == 4)
        {
            throw new Exception("Test " + i);
        }
    }
}
catch (Exception ex)
{
    errorLog.AppendLine(ex.Message);
}

さて、実行が で停止することは明らかですが、 に と の2つのエントリがi==2あるように、反復全体を終了させたいので、例外がスローされても反復を続行することは可能ですか?errorLogi==2i==4

4

2 に答える 2

60

のスコープをcatchループの外側ではなくループの内側に変更するだけです。

for (int i = 0; i < 10; i++)
{
    try
    {
        if (i == 2 || i == 4)
        {
            throw new Exception("Test " + i);
        }
    }
    catch (Exception ex)
    {
        errorLog.AppendLine(ex.Message);
    }
}
于 2013-05-29T15:51:11.950 に答える