基本上,我想做的是在同一个 try 块中将特定的异常传递给更一般的异常。我尝试了以下方法,但它不起作用:
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