try和finally中同时有return,返回顺序是怎样
来源:互联网 发布:用友软件集团招聘 编辑:程序博客网 时间:2024/05/16 14:22
try {}里有一个return语句,finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
try {}和finally{}里都有return语句,那么finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
<span style="font-family:Microsoft YaHei;font-size:14px;">public class TryAndFinal {public static void main(String[] args) { System.out.println(test2());} static int test2() { int x = 1; try { System.out.println("this is in try"); System.out.println(x); return x; } finally { System.out.println("this is infinal"); ++x; System.out.println(x); } } }</span>
运行结果是:
<span style="font-family:Microsoft YaHei;font-size:14px;">this is in try1this is infinal21</span>也就是说,在try中间有返回值,则结果就是那个返回值
<span style="font-family:Microsoft YaHei;font-size:14px;">public class TryAndFinal {public static void main(String[] args) { System.out.println(test2());} static int test2() { int x = 1; try { System.out.println("this is in try"); System.out.println(x); return x; } finally { System.out.println("this is infinal"); ++x; System.out.println(x);return x; } } }</span>则返回结果是:
<span style="font-family:Microsoft YaHei;font-size:14px;">this is in try1this is infinal22</span>也就是说一定会先执行try 中的内容,包括返回值,然后是finally中的内容。
但是,执行完try中后,这时程序并没有结束,这就相当于你的test()方法其实还没有完,之前的返回都放在一个变量里,当你执行完finally时,如果值改变值返回新的值,如果没有改变依旧返回原来的值。
0 0
- try和finally中同时有return,返回顺序是怎样
- try中有return语句,先执行return还是finally,执行顺序怎样的
- try--catch--finally中return返回值执行的顺序
- try和finally代码块中同时有返回值时,返回结果的讨论
- try-catch-finally语句中用什么方法退出或者不执行finally就直接退出并且return和finally的执型顺序是怎样的
- try-catch语句中return和finally执行顺序详解
- try{}中return和finally{}
- Java中try{return} finally中return 和finally的执行顺序
- 关于try,finally中return的顺序
- try,finally和return的运行顺序
- try-catch-finally结构 try中有异常或return时执行顺序
- java中 有return 的情况,return以及try,finally代码块的执行顺序
- try中有return,finally中的code会不会执行,执行是在return前还是后?
- 【Java基础之finally和return】有return的情况下try catch finally的执行顺序
- try-catch-finally中finally的break,return执行顺序
- TRY--CATCH--FINALLY中RETURN返回值执行的顺序(区别)
- TRY--CATCH--FINALLY中RETURN返回值执行的顺序(区别)
- java try return 和finally return 执行顺序证明
- Android low memory killer 详解
- RMQ学习ing
- QT5 解决中文乱码问题
- Floyd最短路算法
- poj 1442 Black Box
- try和finally中同时有return,返回顺序是怎样
- 调出Android Studio logcat
- 屏蔽XSS漏洞
- 【NOIP2016提高A组8.12】礼物
- STM32定时器的预装寄存器及影子寄存器PSC—ARR-CCRx
- 友盟推送开发小笔记
- Swift 中使用runtime交换方法实现
- 43. Multiply Strings
- 万维网