package com.s.example;
/**
* 测试try cache finally 执行顺序以及return
* @author jacksang
*
*/
public class Test {
public static void main(String[] args) {
int i;
i = testOne();
System.out.println(i);
i = testTwo();
System.out.println(i);
}
/**
* 在try出现异常finally出现return是否会执行
*/
public static int testOne(){
try {
System.out.println("try");
throw new RuntimeException();
} catch(Exception e) {
System.out.println("catch");
} finally {
System.out.println("finally");
return 1;
}
return 2;
}
//执行顺序
// 1. 打印"try"
// 2. 遇到throw RuntimeException
// 3. 捕获异常信息走catch,打印"catch"
// 4. 最后执行finally,并且返回1
// 5. main函数中输出1 (finally中包含return后外部return不执行)
/**
* try中return会不会执行finally
*/
public static int testTwo(){
try {
System.out.println("try");
return 1;
} catch(Exception e) {
System.out.println("catch");
} finally {
System.out.println("finally");
}
return 2;
}
//执行顺序
// 1. 打印"try"
// 2. 最后执行finally,并且返回1
// 3. main函数中输出1 (finally中包含return后外部return不执行)
//注意如果在finally中包含return,将直接返回,try中return失效
}
[随记] try catch finally return 执行顺序
最新推荐文章于 2024-07-10 21:37:49 发布