我有一个 try-catch 块来处理一些方法的异常。此方法包含可能引发异常的其他方法,如下例所示:
try{
MyMethod(...);
}catch(MyException1){
// handle it...
}catch(MyException2){
// handle it...
}
MyMethod(...){
// do things involving
// MethodThatThrowsException1
// do other things involving
// MethodThatThrowsException2
}
MethodThatThrowsException1(...){
if(condition1)
throw MyException1;
// do something
}
MethodThatThrowsException2(...){
if(condition2)
throw MyException2;
// do something else
}
我的问题是:
我可以简单地调用任何在内部抛出异常的方法,MyMethod
因为我在第一个 try-catch 中处理了它们,或者我应该在那里放置一个 try-catch 块(或两个)并重新抛出MyException1
/MyException2
像这样
MyMethod(...){
try{
// do things involving
// MethodThatThrowsException1
}catch(MyException1){
rethrow;
}
try{
// do other things involving
// MethodThatThrowsException2
}catch(MyException2){
rethrow;
}
}
? 如果显示的方法是错误的,请解释为什么?