基本的に、私がやりたいことは、同じ try ブロック内で特定の Exception をより一般的な Exception に渡すことです。私は次のことを試しましたが、うまくいきません:
static bool example(int count = 0)
{
try
{
work();
}
catch (TimeoutException e)
{
if (count < 3)
{
Console.WriteLine("Caught TimeoutException: {0}", e.Message);
return example(count + 1);
}
else
{
throw new Exception(e.Message);
}
}
catch (Exception e)
{
Console.WriteLine("Caught Exception: {0}", e.Message + " rethrown");
return false;
}
return true;
}
static void work()
{
throw new TimeoutException("test");
}
よりTimeoutException
一般的なException
. これはTimeoutException
、ケースバイケースで例外に関する追加情報があるためです。の句のException
下ののコードを複製したくありません。すべての例外を処理したい理由は、他にも未知の例外がスローされる可能性があるためです。プログラムの性質上、クラッシュしないようにする必要があるため、他の例外を考慮してログに記録する必要があります。どうすればこれを実装できますか?else
TimeoutException