最后使用是不错的做法

时间:2013-04-08 13:36:28

标签: java exception try-catch try-catch-finally finally

我们在代码中使用try catch块。我想在这里问一下,使用finally块是一个很好的做法。我还没有看到很多代码中的块。这是不好的做法吗?

4 个答案:

答案 0 :(得分:4)

Catch :出现问题时。
最后:什么时候/什么都没有出错。

最后,即使抛出异常,当你想要做某事时,也可以帮助你。像关闭数据库连接一样,释放资源。您无法在catch块中执行此操作,因为catch仅在抛出异常时执行。

问:何时使用try-catch
Ans:你想在抛出异常时做点什么

问:何时使用try-finally
Ans:即使抛出异常,你也想做点什么。

问:何时使用try-catch-finally
Ans:只有在抛出异常时才需要x,而抛出异常时则需要y。

总结一下

try{  

//.....

}
catch{  
   // Something you want to do only when exception is thrown
   // Like OMG evil execption RUN RUN
}  
finally{
   // Something you want to do even the exception is thrown or not  
   // Like who the hell cares about exception
}

答案 1 :(得分:1)

如果您需要处理异常并且仍然​​必须执行某些代码(通常是清理,处理资源)以防出错,这当然是一种很好的做法。

引用“处理例外情况的最佳做法”(http://msdn.microsoft.com/en-us/library/seyhszts(v=VS.71).aspx):

  

在可能生成的代码周围使用try / finally块   异常并将catch语句集中在一个位置。在   这样,try语句生成异常,finally   语句关闭或释放资源以及catch语句   从中心位置处理异常。

答案 2 :(得分:1)

最后使用是一种很好的做法。无论发生异常,都会执行它。

答案 3 :(得分:1)

如果您在程序中执行任何数据库操作,那么finally block是不错的选择。 所以,在这里使用finally块,它会自动关闭数据库。 例如:

try
{
 //code of operation
}
catch(Exception error)
{ //code to handle exception
  error.printStackTrace();
}
finally
{ //any code which need to execute mandatory   
  commit();
  db.close();
}

在上面的示例中,try block处理打开的数据库连接以及插入,检索或更新数据库。 catch block处理异常并finally block关闭所有数据库连接。