私がこのようなコードを持っているとしましょう:
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);
}
これで、実行がi==2
で停止することは明らかですが、errorLog
に2つのエントリ(i==2
とi==4
)それで、例外がスローされても繰り返しを続けることは可能ですか?
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);
}
}
なぜ例外をスローするのですか?すぐにログに書き込むことができます:
for (int i = 0; i < 10; i++)
{
if (i == 2 || i == 4)
{
errorLog.AppendLine(ex.Message);
continue;
}
}