Java中try、catch、finally、return的执行顺序
来源:互联网 发布:淘宝界面 购物车代码 编辑:程序博客网 时间:2024/05/18 03:12
示例
try、finally中都有return的执行顺序
public class TestReturn { private static int i = 1; public static void main(String[] args) { int i = testRetrun(); System.out.println("i:" + i); } private static int testRetrun() { try { i++; System.out.println("try-i:" + i); return ++i; } catch (Exception e) { System.out.println("catch"); } finally { System.out.println("finally-i:" + i); i++; System.out.println("finally-i:" + i); return ++i; } }}
打印结果
try-i:2finally-i:3finally-i:4Final-i:5
执行顺序
先执行try代码块,return逻辑执行但不返回,接着执行finally语句,return逻辑执行返回。
try、catch中都有return的执行顺序
private static int testRetrun() { try { i++; System.out.println("try-i:" + i); return ++i; } catch (Exception e) { System.out.println("catch-i:" + i); return ++i; } finally { System.out.println("finally-i:" + i); i++; System.out.println("finally-i:" + i); } }
打印结果
try-i:2finally-i:3finally-i:4Final-i:3
执行顺序
先执行try代码块,return逻辑执行但不返回,接着执行finally语句,执行完毕后,再通过try代码块中的return返回。
其他情况都是类型的,这里就不做测试了
结论
- return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回)
finally永远会执行
- 当finally中有return时,则通过finally中的return结束代码执行
- 当finally中无retrun时,则执行完finally代码块后再通过try或catch中的return结束代码执行
阅读全文
0 0
- java中try catch finally与return的执行顺序
- Java中try-catch-finally-return的执行顺序
- 关于Java中try-catch-finally-return的执行顺序
- 关于Java中try-catch-finally-return的执行顺序
- Java中try-catch-finally-return的执行顺序
- 关于Java中try-catch-finally-return的执行顺序
- Java中try-catch-finally-return的执行顺序
- Java中try、catch、finally、return的执行顺序
- try-catch-finally中finally的break,return执行顺序
- 浅析Java try....catch....finally中return语句执行顺序
- java异常try catch finally中return具体执行顺序
- try, catch, finally, return的执行顺序
- try、catch、finally、return的执行顺序
- try、catch、finally、return的执行顺序
- try catch finally return 的执行顺序
- try、catch、finally、return的执行顺序
- try catch finally return 的执行顺序
- try catch finally return 的执行顺序
- Xftp_5.0.1.28安装包分享
- 基于贝叶斯算法的拼写检查器
- 利用Random类产生5 个1-30之间(包括1和20)的随机整数。
- CentOS7下成功修复了Windows10的grub引导
- 欢迎使用CSDN-markdown编辑器
- Java中try、catch、finally、return的执行顺序
- 动态规划(2)——01背包
- 乘法表
- 【MySQL】20个经典面试题
- [Leetcode]516. Longest Palindromic Subsequence
- synchronized的补充
- MySQL设计之三范式的理解
- 点亮人生中第一个发光二极管
- C++中简单的文本文件输入/输出