[计算机]try、catch、finally、return的执行顺序

[计算机]try、catch、finally、return的执行顺序

ID:25418168

大小:66.18 KB

页数:5页

时间:2018-11-20

[计算机]try、catch、finally、return的执行顺序_第1页
[计算机]try、catch、finally、return的执行顺序_第2页
[计算机]try、catch、finally、return的执行顺序_第3页
[计算机]try、catch、finally、return的执行顺序_第4页
[计算机]try、catch、finally、return的执行顺序_第5页
资源描述:

《[计算机]try、catch、finally、return的执行顺序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、try、catch、finally、return的执行顺序publicclassJVMTest{publicstaticvoidmain(String[]args){System.out.println("aa:"+aa());}publicstaticintaa(){inta=1;intb=10;try{System.out.println("abc");returna;}finally{a=2;System.out.println("a:"+a);}}}运行结果为:abca:2aa:1由此可知:在try语句中,在执行return语句时,要返回的结果已

2、经准备好了,就在此时,程序转到finally执行了。在转去之前,try中先把要返回的结果存放到不同于a的局部变量中去,执行完finally之后,在从中取出返回结果,因此,即使finally中对变量a进行了改变,但是不会影响返回结果。但是,如果在finally子句中最后添加上returna会怎样呢?执行结果如下:Compiling1sourcefiletoE:sunInsideJVMbuildclassesE:sunInsideJVMsrcJVMTest.java:37:warning:finallyclausecannotcomplete

3、normally}1warningcompile-single:run-single:abca:2aa:2 测试1:   publicstaticinttest1()   {       inti=1;       try       {           return++i;       }       finally       {           ++i;           Console.WriteLine("finally:"+i);       }   }   staticvoidMain(string[]args)   {     

4、  Console.WriteLine("Main:"+test1());   }结果:finally:3Main:2测试2:   publicstaticinttest2()   {       inti=1;       try       {           thrownewException();       }       catch       {           return++i;       }       finally       {           ++i;           Console.WriteLine("f

5、inally:"+i);       }   }   staticvoidMain(string[]args)   {       Console.WriteLine("Main:"+test2());   }结果:finally:3Main:2测试3:   publicstatic inttest3()   {       try{}       finally       {           return1;       }   }结果:编译错误,控制不能离开finally子句主体。结论:1.不管出没出现异常,finally块中的语句都会执行;2

6、.当try或catch块中有return语句时,finally块中的语句仍会执行;3.finally块中的语句是在return语句执行之后才执行的,即函数返回值是在finally块中语句执行前确定的;4.finally块中不能包含return语句。总结:finally在return前执行,在finally的操作,不会改变已经确定的return的值,finally不能加return语句。出现异常,先找是否有处理器可以处理这个异常.再finally。Finally里面可以有返回语句,也可以执行,但是eclipse中会有警告。因为这样的话,finally中的r

7、eturn会覆盖掉正常和非正常return的信息,导致用户无法判断当前的情况。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。