从catch中排除异常类型的最佳方法是什么?

时间:2014-08-15 15:04:43

标签: c# exception

从捕获中排除异常类型的最佳方法是什么? 你可能不知道会有什么类型的异常进入,因此你的一个catch可能是泛型catch(Exception ex),你可以轻松检查该异常的类型,如果它与你要排除的异常匹配,那么抛出它备份,但我猜这是非常低效的。有没有更好的方法呢?

3 个答案:

答案 0 :(得分:5)

最直接的方法是设置一个阻止你想要捕获的异常:

try {
    // ....
} catch (DoNotWantToCatchException) {
    throw;
} catch (Exception ex) {
    // Handle exception
}

没有任何更简单的方法可以满足您的要求。

答案 1 :(得分:2)

非常奇怪的要求。但是你可以捕获这个特殊的异常类型并重新抛出它

try
{
   // code
}
catch(YourSpecificException e)
{
   throw;
}
// catch other exceptions here (which you want to handle)

答案 2 :(得分:0)

为它创建一个单独的catch,例如:

try
{
    //do stuff
}
catch (exception to exclude ex)
{
    //do stuff
}
catch (Exception ex)
{
    //do stuff
}