我有一个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;
}
}
? 如果显示的方法错误,请解释原因?
答案 0 :(得分:0)
除非您计划对此做某事,否则您永远不需要捕获异常。捕获异常并立即将其重新抛出而没有任何其他操作是没有目的的。