使用Try Catch Finally块的最佳实践是什么?您是否倾向于只使用try finally块而不使用try catch块?我一直认为try catch finally是使用的最佳实践。但是,在我使用的部分代码中,我看到了这样的代码:
尝试{ doSomething();}最后{ doSomethingElse();}
因为他们没有捕捉到异常,所以我真的很难调试代码。对我来说,不使用catch和only并不是一个很好的实践,但我可能错了。
据我所知,这并不是一个好的做法。基本上,我们没有使用try catch的用途。我也找到了类似的questions。
我的问题是:“您是否同意以下假设:最佳实践是一起尝试捕获最终结果,而不是最终尝试。”如果您不同意,请给我一个例子,说明何时使用try finally而不是try catch,以及为什么您认为try finally比try catch更好?
发布于 2013-04-04 02:50:49
我不同意,如果你不能对抛出的异常做任何事情,但是你的调用者层次结构中更高层次的东西可以,那么使用finally来清理你的资源,让调用者在异常被抛出后处理清理工作。
发布于 2013-04-04 02:54:26
finally构造的目的是提供将始终执行的代码,即使抛出异常也是如此。
try / finally (no catch)允许您编写代码,即使try块中的代码抛出运行时异常,这些代码也能保证执行。
在使用可能引发运行时异常但不引发检查异常的代码的情况下,这很好用。Spring DAO支持就是一个例子;它将IOExceptions包装在运行时异常中。
发布于 2013-04-04 02:54:57
通常,try-finally用于确保执行某些代码,而不管异常是否发生。Catch块通常会丢失,因为try块中的代码不会抛出任何可以捕获的检查异常。
例如:
try {
if(str.length() > 0) { // If str is null, it can throw NullPointer and hence code below it wont execute
// some code
}
}finally {
// Will be performed even if any unchecked exception is thrown
// Must contain code which has to be performed at any cost like releasing occupied memory
}https://stackoverflow.com/questions/15795521
复制相似问题