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