Rak*_* KR 0 java return finally
我有一个简单的疑问.在以下两个代码中,第一个return语句放在一个finally块内
public int method1(){
try{
// Some Stuff
} catch(Exception e){
e.printStackTrace();
} finally{
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
并在第二个return声明中正常放置
public int method1(){
try{
// Some Stuff
} catch(Exception e){
e.printStackTrace();
} finally{
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别吗?哪个可以作为更好的选择?为什么?
在finally块中"返回"并不是一个好习惯.finally由于以下两个原因,可以执行该块:
(a)try块抛出异常(并且没有被catch块捕获) - 在这种情况下,该方法将没有返回值,因此return somethingfinally块中的语句将不起作用.
(b)该try区块正常完成.如果那个块以a结束,return something则代码对读者来说有点混乱,因为现在有两个相关的返回语句,并且不清楚哪个应该优先于另一个.
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |