[分享]关于异常里面的finally代码块执行时机
2015-05-07 15:49
204 查看
package 关于try_catch里面的finally; /** * @author 高攀 * ·finally通常用来关闭使用后的资源。理论上无论如何都会执行。下面讨论return和System.exit(0)的区别。 * 1。return: * ·finally的本义是:在有return情况下,他无论如何都会执行;return和System.exit(0)有一样的效果,都是退出系统, * 不同是:在有return情况下,finally无论如何都会执行。return有两个情况: * 1、return在第一行(即还没有执行到能够发生异常的那一行代码),会执行finally代码块,但是不会执行catch代码块 * 2、return在异常代码块后面,会先执行catch代码块,再执行finally代码块。 * * 2。System.exit(0): * ·但是以下两个情况不会执行finally代码块: * 1、当System.exit(0)标志在try代码块第一行时(即还没有执行到能够发生异常的那一行代码),系统就会退出,并且不会执行finally代码块。 * 2、当catch块中有System.exit(0)标志时,也不会执行finally代码块。 * * 3。程序中能够发生异常的代码块是:System.out.println(1/0); * */ class test { public static void main(String args[]) { //-------------第1个try--------------- try { System.out.println(1/0); //能够发生异常的代码块 return; } catch (Exception e) { System.out.println("catch"); } finally{ System.out.println("finally"); } System.out.println("-------"); //-------------第2个try--------------- try { // System.exit(0); //若在第一行,整个系统就退出了,异常都不会发生。 System.out.println(1/0); // System.exit(0); //(这里的exit不行,还是会执行finally代码块,异常已经发生,已经执行到catch代码块了) } catch (Exception e) { System.out.println("catch"); System.exit(0); // return ; //(return不行,还是会执行finally代码块) } finally{ System.out.println("finally"); } } }
---gongpan
相关文章推荐
- 包含finally的异常代码块里的return,break,continue语句如何执行
- 关于java 异常捕捉 ( try catch finally ) 执行流程
- 关于try-catch、throw、finally在异常时的执行顺序
- 关于try-catch、throw、finally在异常时的执行顺序
- 异常处理机制:finally的执行时机
- 捕捉异常 @try //有可能出异常的代码块 @catch //如果捕捉到错误,则会执行此处的代码 @finally //可选的
- 关于return和finally的执行时机的一点小问题
- 关于Java静态代码块执行时机的解析(一篇就够用)
- 关于异常处理语句catch和finally的执行先后顺序
- Java异常try里面有return,finally代码会执行吗
- 关于try,finally里面的return,到底谁先执行的问题
- try ,finally都抛出异常如何处理.如果try中抛出了异常,在控制权转移到调用栈上一层代码之前, finally 语句块也会执行,如果finally抛出异常,try语句快抛出的那个异常就
- java中的异常以及 try catch finally以及finally的执行顺序
- 关于静态变量(函数)与非静态变量(函数)代码块的使用时机
- java面试题20--如果catch里面有return语句,finally里面的代码还会执行吗?
- 关于Java异常类中try-catch执行顺序的笔记
- finally代码块中的代码什么时候执行
- c#描述异常处理语句try、catch、finally执行时的相互关系
- java中自定义异常和finally唯一不执行的情况
- 关于Asp.net页面Page_Load被执行两次的问题分享