我们在代码中使用try catch块。我想在这里问一下,使用finally块是一个很好的做法。我还没有看到很多代码中的块。这是不好的做法吗?
答案 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
关闭所有数据库连接。