超简单的问题:我的代码会执行到哪里?
try{
代码1;
return 1;
}catch(Exception e){
代码2;
return 2;
}finally{
代码3
}
return 3;
我的代码如果执行了[ return 1 ],那么finally{}里面的语句会执行吗?
还有如果执行了[ return 2 ],那么finally{}里面的语句会执行吗?
------解决方案--------------------没想过这样会怎么样......
反正我不会在实际中这么写代码...
搬个板凳,慢慢等.
------解决方案--------------------都会
------解决方案--------------------同上,都会
------解决方案--------------------finally的优先级别比return高! return 之前执行finally里的代码
------解决方案--------------------除非System.exit(0);
否则都会执行代码3
------解决方案--------------------finally中的代码是必然要执行的。
如果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!!!!! ");是执行不到语句。
------解决方案--------------------噢...明白了.