finally语句块一定执行吗?

答案是不一定。

  • 直接返回未执行到finally语句块
  • 抛出异常未执行到finally语句块
  • 系统退出未执行到finally语句块

...

存在很多特殊情况导致finally语句块不执行。

代码如下

public static String test() {String str = null;int i = 0;if (i == 0) {return str;//直接返回未执行到finally语句块}try {System.out.println("try...");return str;} finally {System.out.println("finally...");}
}public static String test2() {String str = null;int i = 0;i = i / 0;//抛出异常未执行到finally语句块try {System.out.println("try...");return str;} finally {System.out.println("finally...");}
}public static String test3() {String str = null;try {System.out.println("try...");System.exit(0);//系统退出未执行到finally语句块return str;} finally {System.out.println("finally...");}
}

【Java面试题与答案】整理推荐

  • 基础与语法
  • 集合
  • 网络编程
  • 并发编程
  • Web
  • 安全
  • 设计模式
  • 框架
  • 算法与数据结构
  • 异常
  • 文件解析与生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

finally语句块一定执行吗?相关推荐

  1. Finally语句块的执行

    一.finally语句块是否一定执行? Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至 ...

  2. day9 java的实例语句块和代码执行顺序

    实例语句块 每执行一次构造就会在前执行一次实例语句块 代码执行顺序

  3. 关于 Java 中 finally 语句块的深度辨析

    可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机.接下来我就带您一步一步的揭开这个 finally 的神秘面纱. 问题分析 首先来问大家一个问题:finally 语句块一定 ...

  4. java中static{}语句块详解

    原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430     感谢原作者! static{}(即static块),会在类被加载的时候执 ...

  5. 转 java中static{}语句块详解

    原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430     感谢原作者! static{}(即static块),会在类被加载的时候执 ...

  6. static{}语句块详解

    static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法. 举ge例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...

  7. finally语句块

    finally语句块是搭配着try语句块出现的,也就说必须有try语句块才会有finally语句块,但是并不是try语句块都会搭配有finally语句块出现,我们常见的更多是try...catch.. ...

  8. R语言嵌套的ifelse语距:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用。If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块

    R语言嵌套的ifelse语句:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用.If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块 ...

  9. C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?

    参考网址:http://www.cnblogs.com/web-HCJ/p/4468689.html 报错信息:error C2065: 'salary' : undeclared identifie ...

最新文章

  1. [十六]JavaIO之InputStreamReader 与 OutputStreamWriter
  2. SharePoint 数据迁移解决方案
  3. 数据结构与算法、讲解、动态规划一脸懵?看完之后轻松掌握!
  4. 程序员利用网吧挖矿,获利上亿元~!
  5. php大量数据库抽象,PHP系列(十二)数据库抽象层pdo
  6. InterlockedIncrement
  7. 用Jenkins自动化搭建测试环境-前奏
  8. python条形码_python3转换code128条形码
  9. 2019-2020-1 20175313 《信息安全系统设计基础》第二周学习总结
  10. opencv-python:17_图像经典边缘检测算子(边缘检测、图像梯度、Roberts算子、Prewitt算子、Sobel 算子、Laplacian 算子、Canny算子、算子优缺点对比)
  11. 非常好的Struts2教程
  12. python和mysql匹配吗_python使用mysql
  13. 有这5类人最难成为银行的优质客户!
  14. 线性代数 --- 投影与最小二乘 上(一元一次方程组的最小二乘解与向量在一维子空间上的投影)
  15. 上半年计算机二级试题,2016上半年计算机二级模拟题及答案
  16. 分布式机器学习系统笔记(一)——模型并行,数据并行,参数平均,ASGD
  17. 月结2 - 维护汇率[OB08]
  18. GMSSL :SM2椭圆曲线公钥密码算法——数字签名算法4
  19. 【经验总结】“投”——如何寻找适合投递的期刊或者会议
  20. 学生版计算机怎样能玩数字游戏,数学学习游戏电脑版

热门文章

  1. python爬虫小知识: 通过 request库 代理proxies来设置,无法访问问题
  2. Python基础知识串讲PPT
  3. Cannot load JDBC driver class 'com.mysql.jdbc.Driv
  4. 怎么查看分辨率是不是300dpi?图片信息查看器工具推荐
  5. 2020年因果推断综述《A Survey on Causal Inference》
  6. 江苏专转本上岸后还能不能换专业
  7. 简述Key与CSR的区别
  8. 国旗升降系统程序及原理图资料
  9. CCS6.2.0 报错: ROM_ADCIntClear等是 unresolved symbols remain
  10. 【Java】参数校验与统一异常处理