java 中try{}catch(){}finally{}的具体执行顺序+代码测试
来源:互联网 发布:分镜头软件 编辑:程序博客网 时间:2024/06/14 13:17
执行顺序的重点就在finally中,具体如下:
(1)、try:它里面放置可能引发异常的代码
(2)、catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catch块。
(3)、finally:主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件),异常机制总是保证
finally块总是被执行。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果
finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。
为了 证明上面的结论是正确的,做了如下测试:
class Lxk { private static int testFinallyFunc() { String s = null; int result; try { s.equals("ss"); result = 1; //不走 System.out.println("try " + result); //不走 } catch (Exception e) { result = 2; System.out.println("catch " + result); //走,且会给result赋值 return result; //不一定会return } finally { result = 3; System.out.println("finally " + result); //return result; //这个打开返回的就是finally中的结果 3;关闭返回的就是catch中的结果 2 } return result; //这个就占个位置,打开finally的return这个返回就永远走不到了,得注释了。 } public static void main(String[] a) throws Exception { int returnResult = testFinallyFunc(); System.out.println("get return result " + returnResult); }}
finally中有return语句的时候的结果如下:
catch 2
finally 3
get return result 3
finally中没有return语句的时候的结果如下:
catch 2
finally 3
get return result 2
0 0
- java 中try{}catch(){}finally{}的具体执行顺序+代码测试
- java异常try catch finally中return具体执行顺序
- Java try-catch-finally 代码执行顺序
- try,catch,finally执行顺序的测试
- java 中try catch finally执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- java try-catch-finally的执行顺序
- java中try catch finally与return的执行顺序
- java 中try catch finally 语句的执行顺序
- java 中try catch finally 语句的执行顺序
- 关于java中try catch finally的执行顺序
- java 中 try catch finally 语句的执行顺序
- Java中try-catch-finally-return的执行顺序
- Java语言中try-catch-finally的执行顺序
- Hadoop 3.0学习笔记(持续更新....)
- 115. cURL 简介(1)
- poj 1584 A Round Peg in a Ground Hole
- Java IO流
- Unity人物残影实现
- java 中try{}catch(){}finally{}的具体执行顺序+代码测试
- 批处理和存储过程
- 初入spring源码--浅谈核心
- Namespace declaration statement has to be the very first statement in the script
- 1027. 打印沙漏(20) PAT 乙级
- 安全退出调用多个Activity的Application
- 根据缓存服务器或域名来分隔缓存
- java集合类
- M101P: MongoDB for Developers - Chapter 3: Schema Design