大家好,今天小编来为大家解答finally什么时候不执行这个问题,catch里面不建议return很多人还不知道,现在让我们一起来看看吧!
本文目录
java的return在try和finally中的运行顺序,大神请进
情况1:try{}catch(){}finally{}return; 程序按顺序执行。 情况2:try{return;}catch(){}finally{}return; 程序执行try块中return之前(包括return语句中的表达式运算)代码; 再执行finally块,最后执行try中return; finally块之后的语句return,因为程序在try中已经return所以不再执行。 情况3:try{}catch(){return;}finally{}return; 程序先执行try,如果遇到异常执行catch块, 有异常:则执行catch中return之前(包括return语句中的表达式运算)代码,再执行finally语句中全部代码, 最后执行catch块中return.finally之后也就是4处的代码不再执行。 无异常:执行完try再finally再return. 情况4:try{return;}catch(){}finally{return;} 程序执行try块中return之前(包括return语句中的表达式运算)代码; 再执行finally块,因为finally块中有return所以提前退出。 情况5:try{}catch(){return;}finally{return;} 程序执行catch块中return之前(包括return语句中的表达式运算)代码; 再执行finally块,因为finally块中有return所以提前退出。 情况6:try{return;}catch(){return;}finally{return;} 程序执行try块中return之前(包括return语句中的表达式运算)代码; 有异常:执行catch块中return之前(包括return语句中的表达式运算)代码; 则再执行finally块,因为finally块中有return所以提前退出。 无异常:则再执行finally块,因为finally块中有return所以提前退出。 最终结论:任何执行try或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。 如果finally中有return语句,那么程序就return了,所以finally中的return是一定会被return的, 编译器把finally中的return实现为一个warning。
try语句出现异常,最后的return还执行吗
1、在try语句块中如果出现异常,会立即跳到对应的except语句块,如果在except语句块中没有对异常进行处理或者没有进行任何操作而导致异常继续传播,则整个程序会中止,最后的return语句不会被执行。
JAVA中的return有什么作用
在JAVA中,就算是一个简单的return也能让一个程序猿的水平高下立判!
return作为控制语句,通常用来返回一个对象(或者基本类型),或者结束一个方法!
1,返回对象:JAVA编译的时候总是要求一个方法有明确的返回类型,或者为void,行为(方法)产生数据,供调用者使用!
2,结束方法:如果不是一个返回特定类型的方法(viod),可以直接通过return;指令结束方法!
如下例,调用这个方法得到一个固定的字符串,并且结束语句!
publicstaticstringgetValue(){
return"OK";
}
在编程中通常还怎么用return?
1,入参判断:类似Assert.notNull()的用法,可以直接判断判断入参,在一个方法中如果有不合适的参数,更早的返回,避免对业务逻辑的污染!
publicstringgetValue(Stringcode){
if(code==null)
return"参数不合法";
doSomething();
}
2,代替break:在循环中,如果符合某条件,提早返回,退出循环!
while(true){
if(condition)
return;
}
虽然,return作为结束语句,但是不代表return语句之后,别的语句不能再执行,比如说trycatchfinally句式,就算在try或者catch中使用了return语句,但是finnally语句总是在最后还是会执行!
JAVA中很多简单的语句,通常有着很多妙用,在编程过程中一定要注意,毕竟最简单的同时也是最难的,return就说到这,更多的技术分享,敬请关注。。。
finally什么时候不执行
finally执行语句是在trycatch之后执行的,所以前面trycatch不会执行。【PS:但不能绝对说finally是在trycatch之后执行,也有例外。发生在有返回值的时候,trycatch里有returni,而finally里returni会在之前return】
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!