尝试捕获包含另一个引发异常的方法的方法

时间:2019-08-20 11:35:11

标签: c# methods try-catch rethrow

我有一个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;
  }

}

?  如果显示的方法错误,请解释原因?

1 个答案:

答案 0 :(得分:0)

除非您计划对此做某事,否则您永远不需要捕获异常。捕获异常并立即将其重新抛出而没有任何其他操作是没有目的的。