try-catch-finally执行顺序
Posted shaohsiung
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了try-catch-finally执行顺序相关的知识,希望对你有一定的参考价值。
先给结论:
1. 不管try中有没有出现异常, finally都会被执行
2. 当try中有return时, 会先执行finally, 再return
3. 当try中出现异常时且catch中有return时, 先执行finally后, 再return
测试代码:
配合断点调试一起食用
1 /** 2 * Created by IntelliJ IDEA. 3 * 4 * @Auther: ShaoHsiung 5 * @Date: 2018/9/5 20:54 6 * @Title: 7 * @Description: 8 * 1. 不管try中有没有出现异常, finally都会被执行 9 * 2. 当try中有return时, 会先执行finally, 再return 10 * 3. 当try中出现异常时且catch中有return时, 先执行finally后, 再return 11 */ 12 public class ExceptionTest { 13 public static void main(String[] args) { 14 System.out.println("方法执行前"); 15 method(); 16 System.out.println("方法执行后"); 17 } 18 19 private static void method() { 20 try { 21 System.out.println("try"); 22 int i = 1 / 0; 23 //return; 24 } catch (Exception e) { 25 System.out.println("catch"); 26 return; 27 } finally { 28 System.out.println("finally"); 29 } 30 } 31 }
以上是关于try-catch-finally执行顺序的主要内容,如果未能解决你的问题,请参考以下文章
请简述JAVA中 try-catch-finally 语句的执行过程 简单明了 好的话 加分(曹苇提问)
try-catch-finally 和 return 是怎么执行的?
try-catch-finally 中哪个部分可以省略?try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?