package com.jiben.Test;public class J_Test1 {
public static void main(String[] args){
try{
System.out.println("1");
if(true)
return;
}
catch(RuntimeException e1){
System.out.println("2");
return;
}
catch(Exception e2){
System.out.println("3");
return;
}
finally{
System.out.println("4");
}
System.out.println("End!");
}
}为何 End!没有输出 请高收解释
public static void main(String[] args){
try{
System.out.println("1");
if(true)
return;
}
catch(RuntimeException e1){
System.out.println("2");
return;
}
catch(Exception e2){
System.out.println("3");
return;
}
finally{
System.out.println("4");
}
System.out.println("End!");
}
}为何 End!没有输出 请高收解释
System.out.println("1");
之后if true ,然后就执行finally里的System.out.println("4");
然后
就跑到return去了,当然不会执行end了
try后总是要执行finally中的语句块
打印结果就是
1
4如果catch了,就有在catch中语句块return出,再执行 finally 中语句块
只有一种情况finally语句块不执行:受保护代码(try语句块中的代码)中调用System。exit()强行终止程序。如果try语句块或者catch语句块中有return语句,都会首先执行finally语句块的内容然后再执行return语句。
1
4
然后 return
后面的代码不会被执行的
至于finally,一般是用来释放一些必须要释放的资源时用,在finally里的语句不管是否出错都会执行。
主要的就是这样的。