1、try、catch、finally语句中,在如果try语句有return语句,则返回的之后当前try中变量此时对应的值,此后对变量做任何的修改,都不影响try中return的返回值。
2、如果finally块中有return 语句,则返回try或catch中的返回语句忽略。
3、如果finally块中抛出异常,则整个try、catch、finally块中抛出异常。
使用try、catch、finally语句块中需要注意的是:
1、尽量在try或者catch中使用return语句。通过finally块中达到对try或者catch返回值修改是不可行的。
2、finally块中避免使用return语句,因为finally块中如果使用return语句,会显示的消化掉try、catch块中的异常信息,屏蔽了错误的发生。
3、finally块中避免再次抛出异常,否则整个包含try语句块的方法回抛出异常,并且会消化掉try、catch块中的异常。
实验:finally语句依然执行,但对方法的返回值没有任何影响。
public class Test{ public static String func(){ Integer i=0; try{ System.out.println("执行try语句块");//1 return i.toString();//2 }finally{ System.out.println("开始执行finally语句块,i的值为:"+i);//3 i++;//4 System.out.println("结束执行finally语句块,i的值为:"+i);//5 } } public static void main(String[] args) { System.out.println("开始执行main");//0 System.out.println("执行func的结果为:"+func());//5 System.out.println("结束执行main");//6 //launch(args); } }
输出内容为:
开始执行main 执行try语句块 开始执行finally语句块,i的值为:0 结束执行finally语句块,i的值为:1 执行func的结果为:0 结束执行main
相关推荐
try、catch、finally、return 执行顺序超详细讲解,包看包会。
在Java的异常机制中,如果finally中含有return语句,则try和catch中的return语句将会被JVM忽视
Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据
Shouldn t crash on regexps with many nested parentheses.
The production IfStatement : if ( Expression ) Statement else Statement is evaluated as follows:.
第二:finally里面不建议放return语句,根据需要,return语句可以放在try和catch里面和函数的后。可行的做法有四: 1、return语句只在函数后出现一次。 2、return语句仅在try和catch里面都出现。 3、...
主要介绍了关于Java中try finally return语句的执行顺序浅析,需要的朋友可以参考下
Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。
try-catch-finally执行顺序验证(左边是.java文件,右边是.class文件) 提示: try、catch块内的return操作编译后会变成把return的值保存到变量var的操作。 总结: try、catch块内的return操作编译后会变成把return的值...
首先执行try,如果有异常执行catch,无论如何都会执行finally,当有return以后,函数就会把这个数据存储在某个位置,然后告诉主函数,我不执行了,接下来你执行吧,所以函数就会推出
我们知道return语句用在某一个方法中,一是用于返回函数的执行结果,二是用于返回值为void类型的函数中,仅仅是一个return语句(return ;),此时用于结束方法的执行,也即此return后的语句将不会被执行,当然,这种...
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]这种写法在IE中100%内存... obj.onclick=function(){ //处理click事件 } obj.onmouseover=function(){ //处理mouseover事件 } try{ return obj; }finally{ o
在Java中当try、finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大家众说纷纭,有的说会执行,有的说不会执行,到底哪种说法正确,下面我们来详细讨论下
finally 一定会被执行,如果 finally 里有 return 语句,则覆盖 try/catch 里的 return , 比较爱考的是 finally 里没有 return 语句,这时虽然 finally 里对 return 的值进行了修改,但 return 的值并不改变这种...
主要介绍了关于java中的一道面试题,这套题就是在try中含return语句时代码的执行顺序,这个问题看似简单,却暗藏杀机啊!文中通过一个个例子详细介绍了其中玄机,需要的朋友可以参考学习,下面来一起看看吧。
因为有把python程序打包成exe的需求,所以,有了如下的代码 import time class LoopOver(Exception): def __init__(self, *args, **kwargs): ... return '总共用时:{}秒'.format(self.runtime) if __name__
print('to return in try') return 'try' except Exception: print('process except') print('to return in except') return 'except' finally: print('to return in finally') return 'finally' test1...
- 无论try是否发生异常,finally语句都会执行- 如果try/catch中包含控制转移语句(return、continue、break),finally
实验指导书 实验名称:包、接口与异常处理 学时安排:2 实验类别:综合设计型实验 实验要求:1人1组  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的 1、掌握java字符串处理...
1. try的意思,就是试着执行里面的语句,所以如果try内部抛出了异常 ... 那么 finally不会被执行,此外的情况,不管是Error还是return,finally块都会执行到。 5. 建议不清楚的拷贝代码或者自己写一份执行了看看。