如果我想捕获除给定类型之外的所有异常,并且将重新抛出这些特定类型以便在更高的上下文中捕获,那么它会更好:
try
{
//Code that might throw an exception
}
//Catch exceptions to be handled in this context
catch (Exception ex) when (!IsExcludedException(ex))
{
//Handle leftover exceptions
}
或者做得更好:
try
{
//Code that might throw an exception
}
catch (SpecificException)
{
throw;
}
//Catch exceptions to be handled in this context
catch (Exception ex)
{
//Handle leftover exceptions
}
或者它真的不重要吗?还有更好的方法吗?
答案 0 :(得分:6)
第二种方式绝对是分析清晰,它是我最看重的。特定捕获首先发生并且不触发通用捕获,但如果您没有实现特定捕获,则仍然会有后备。此外,为了处理多个特定的例外情况,您还需要进行更多!(ex is SpecificException)
次检查。