【发布时间】:2013-03-15 01:30:26
【问题描述】:
如果执行没有导致异常,则控制转到 finally 块。 那么,JVM 是否忽略了 try 块中的 return 语句?。或者,如果发生异常,则控制转到 catch 块,它也忽略返回语句,控制转到 finally 块并从 finally 返回
public class Helper {
public int showException(int a, int b){
try{
int c=a/b;
return c;
} catch(Exception e){
return 0;
} finally{
return 3;
}
}
}
【问题讨论】:
-
'return' 在 catch 块中是糟糕的设计。
-
无论如何,Finally 总是运行,尝试删除 finally(如果不需要)。
-
@Falaque 为什么会这样?如果您的操作成功后需要返回怎么办?
-
@ToonCasteele 如果成功,它不会去抓块。
-
那么您总是将
return false;放在方法的末尾以防不成功?