请问在
method(){
try{
return 0;
}catch(){
....
}finally{
if{}{
return -1;
}
}
return 0;(这里为什么非要加一个return呢?执行到finally结束不是就跳出了吗,后面的return就不会执行了对吗?能不能解释一下,谢谢~~~~)
}
------解决方案--------------------
return 是方法的返回值,如果你的方法没有返回值,也就是返回为voit
那就不用return了,
finally是不管发不发生异常都会执行的一块!
希望对你有帮助!
------解决方案--------------------
finally 指在
try/catch/finally中无论是否有异常发生,都会执行的代码片断
单 tcf 本身也只是一个片断而已,这个片断执行完了,当然还要执行 tcf 后面的代码啦!
------解决方案--------------------
回楼主,fianlly不会结束方法.
而finally里的return被放在了if语句中.
一旦if判断的结果为false,这个方法的当前流程就没有return可以返回了.
为了保证方法无论如何都有返回值,最后追加了一个return.
------解决方案--------------------
finally是无论catch到异常或者没有catch到异常都会执行的一段代码,而并不是执行完就跳出方法体的
上面的代码里由于你的method是要求有返回值的,而
catch(){
....
}finally {
if{}{
return -1;
}
}
代码段中catch里没有return -1;
finally里面有return -1;但是是有if条件限制的
如果不满足if的话就不会return -1;
因此代码中还缺少对不满足if条件的情况的返回值处理
所以最后一个return 0;不能少
除非
catch(Exception e){
throw e;
}
抛出了这个e的话就不需要返回值了