Java try-catch-finally 代码执行顺序
2015-07-03 15:02
603 查看
测试用例
public class TestExceptions { public static void main(String[] args){ try { String result = ""; try { int i= 0; double val = 10/i; System.out.println("try ok!"); result = "ok!"; } catch (Exception e){ result = "fail"; e.printStackTrace(); throw new Exception(e.getMessage()); } finally { System.out.println("here in finally, result=="+ result); } } catch (Exception e){ System.out.println("outter try catch, exception=="+ e.getMessage()); } } }
输出结果:
java.lang.ArithmeticException: / by zero
at TestExceptions.main(TestExceptions.java:12)
here in finally, result==fail
outter try catch, exception==/ by zero
结论:
try块代码抛出异常,则转到相应的catch块,被捕获异常;在catch执行完,转入外部代码之前,先执行finally块。
无论是否抛出异常,finally块的代码都会被执行到。
相关文章推荐
- Java+Hibernation+MySQL的@JsonIgnore注解
- java IO流操作inoutstream和outputstream读写操作
- 开始使用Spring Boot
- myeclipse部署时An internal error occurred 错误的几种情况
- JiBx:BindGen命令行--通过Java POJO对象产生bind.xml和xsd文件
- JavaBean 浅析
- img onerror属性导致myeclipse卡死
- Java中新手易犯错误
- Eclipse远程调试
- java 匿名内部类
- Spring Web Flow 入门demo(三)嵌套流程与业务结合 附源码
- classloader
- java-list-remove()用法浅析 解决java list remove() 数据不对的问题
- java.lang.OutOfMemoryError: PermGen space
- 一些算法JAVA实现
- java中静态代码块的用法 static用法详解(转)
- 浅谈Java中的Set,List,Map的区别
- Java中流的概念
- Java 7 的7个新特性
- java中treemap和treeset实现(红黑树)