public class TryCatchFinallyTest {
public static void main(String[] args) {
demo01();
System.out.println(String.valueOf(demo02()));
System.out.println(String.valueOf(demo03()));
System.out.println(String.valueOf(demo04()));
System.out.println(String.valueOf(demo05()));
}
//首先不管有没有异常,finally都会执行
//①没有异常执行 ,先执行try再执行finally,输出结果为1 3
private static void demo01(){
System.out.println("接下来是demo01");
try{
System.out.println("1");
}catch(Exception e){
System.out.println("2");
}finally{
System.out.println("3");
}
}
//②在try 和catch 中都有return而finally中没有return的情况下时,没有异常的情况下先执行try和finally的语句再执行return语句
//因此输出结果为 : try//1
public static int demo02(){
System.out.println("接下来是demo02");
try{
System.out.println("try//1");
return 1;
}catch(Exception e){
return 2;
}finally{
System.out.println("finally//3");
}
}
//③finally是在return后面的表达式运算后执行的,
public static int demo03(){
System.out.println("接下来是demo03");
int i=0;
try{
i =1;
System.out.println("try//1");
return i;
}catch(Exception e){
i =2;
System.out.println("finally//3");
return i;
}finally{
i =3;
System.out.println("finally//3");
}
}
//④finally中有return的时候,会首先先执行try,和finally中的语句(return除外,)之后再分别执行try中个finally中的return语句
@SuppressWarnings("finally")
public static int demo04(){
System.out.println("接下来是demo04");
int i=0;
try{
i =1;
System.out.println("try//1");
return i;
}catch(Exception e){
i =2;
System.out.println("finally//3");
return i;
}finally{
i =3;
System.out.println("finally//3");
return i;
}
}
//05测试题目
public static int demo05(){
System.out.println("接下来是demo05");
int x = 0;
try {
++x;
return x;
} catch (Exception e) {
x=2;
return x;
}
finally{
++x;
}
}
}
java try-catch-finally的执行顺序
最新推荐文章于 2022-11-03 17:30:48 发布