try-catch-finally学习
来源:互联网 发布:js代码整理 编辑:程序博客网 时间:2024/05/22 15:04
finally语句不会执行的情况:
(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。
(2)在try块中有System.exit(0);这样的语句,System.exit(0);是终止Java虚拟机JVM的,连JVM都停止了,所有都结束了,当然finally语句也不会被执行到。
finally语句示例说明:
- 测试try语句块
清单 3:
public class Test { public static void main(String[] args) { try { System.out.println("try block"); return ; } finally { System.out.println("finally block"); } } }
清单 3 的执行结果为:
try block finally block
清单 3 说明 finally 语句块在 try 语句块中的 return 语句之前执行。
2. 测试catch语句块
我们再来看另一个例子(清单 4)。
清单 4.
public class Test { public static void main(String[] args) { System.out.println("reture value of test() : " + test()); } public static int test(){ int i = 1; try { System.out.println("try block"); i = 1 / 0; return 1; }catch (Exception e){ System.out.println("exception block"); return 2; }finally { System.out.println("finally block"); } } }
清单 4 的执行结果为:
try block exception block finally block reture value of test() : 2
清单 4 说明了 finally 语句块在 catch 语句块中的 return 语句之前执行。
结论
从上面的清单 3 和清单 4,我们可以看出,其实 finally 语句块是在 try 或者 catch 中的 return 语句之前执行的。
本文参考两篇前辈们的文章:
1. http://www.cnblogs.com/lanxuezaipiao/p/3440471.html
2. https://www.ibm.com/developerworks/cn/java/j-lo-finally/
阅读全文
0 0
- try-catch-finally学习
- try{}catch{}finally{}学习
- try-catch-finally学习
- java学习--try catch finally
- java中try/catch/finally再学习
- try..catch..finally
- try-catch-finally
- Try-catch-finally机制
- 关于try-catch-finally
- C# try catch finally
- try...catch...finally
- try catch finally用法
- Try ---Catch----Finally
- try...catch... finally
- try....catch...finally 妙用
- try{} catch(){}finally{}执行
- Try Catch Finally
- try-catch-finally
- JS异步之async函数
- AFIO---端口IO功能复用时钟
- shell--条件判断与测试
- undefined function openssl_get_publickey()
- unity游戏android平台获取粘贴板的文本,实现复制粘贴功能
- try-catch-finally学习
- android textview 文本显示不同颜色
- GsyVideoPlayer视频分析(三)------------全屏实现
- 20170703练习赛比赛总结
- CMOS Sensor 基础知识
- Shiro
- 【Linux基础】select、poll、epoll详解
- 数据结构之数组 笔记
- Android开发系列之浅浅谈Intent