try{
代码1;
return 1;
}catch(Exception e){
代码2;
return 2;
}finally{
代码3
}
return 3;
我的代码如果执行了[ return 1 ],那么finally{}里面的语句会执行吗?
还有如果执行了[ return 2 ],那么finally{}里面的语句会执行吗?
代码1;
return 1;
}catch(Exception e){
代码2;
return 2;
}finally{
代码3
}
return 3;
我的代码如果执行了[ return 1 ],那么finally{}里面的语句会执行吗?
还有如果执行了[ return 2 ],那么finally{}里面的语句会执行吗?
否则都会执行代码3
如果try中发生异常,则catch中的代码执行,并且finally中的代码执行,当catch中的代码没有再次抛出异常,则finally后面的代码执行。
public class Test
{
public static void main(String[] args) throws Exception
{
try{
throw new Exception();
}catch(Exception e){
System.out.println("Exception!!!!!");
//throw e;
}finally{
System.out.println("Finally!!!!!");
}
System.out.println("After!!!!!");
}
}
当你把//throw e;不注释的时候,在编译的时候会告诉你System.out.println("After!!!!!");是执行不到语句。