首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

超简单的有关问题:小弟我的代码会执行到哪里

2012-03-03 
超简单的问题:我的代码会执行到哪里?try{代码1return1}catch(Exceptione){代码2return2}finally{代码3

超简单的问题:我的代码会执行到哪里?
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!!!!! ");是执行不到语句。

[解决办法]
噢...明白了.

热点排行