最近我惊讶地发现在Java中的finally块中可以有一个return语句.
似乎很多人认为这样做是不好的,如' 不要在最终条款中返回 '中所描述的那样.更深入地抓了一下,我还发现' Java的回归并不总是 ',这显示了最终块中其他类型的流控制的一些非常可怕的例子.
所以,我的问题是,有人能给我一个例子,其中finally块中的return语句(或其他流控制)产生更好/更可读的代码吗?
我不熟悉java,我最近在看一些同事写的一些令我困惑的代码.这是它的要点:
public response newStuff(//random data inside) {
try {
response or = //gives it a value
log.info(or.toString());
return or;
}
catch ( Exception e) {
e.printStackTrace();
}
finally {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
在这里添加finally块真的有什么意义吗?我不能只在catch块中添加返回null,这将执行相同的行为,或者我错了吗?