2013-08-31 40 views
2

我想调用一个函数的代码来处理函数中引发的任何异常。如果我写:为什么抛出一个例外而不是让代码抛出它?

  try 
      { 
       // Code than may raise an exception 
      } 
      catch 
      { 
       throw; 
      } 

该异常将传回调用堆栈。我可以写下面的代码并获得相同的结果吗?在这种情况下是否有任何理由使用try catch

   // Code that may raise an exception 

回答

4

在你提出的方案中,捕捉,然后重新抛出的唯一原因,例外是如果你正在做的catch块别的东西,如日志或清理。否则,这完全是一个空操作。

顺便说一下,如果您确实需要这种构造,那么您使用throw而不是throw e会有好处。前者保留了callstack;后者不。

1

在这种情况下没有理由使用try/catch

如果您记录了任何信息或封装了更高级别的异常,则会显示try/catch

相关问题