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

Java错误处理中出现特殊情况解析

2011-12-11 
Java异常处理中出现特殊情况解析1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;2、在t

Java异常处理中出现特殊情况解析
1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;
2、在try,catch中如果有return语句,则在执行return之前先执行finally块
 
请大家下面的例子:


public   class   TryTest   {  
        public   static   void   main(String[]   args)   {  
                try   {  
                        System.out.println(TryTest.test());//   返回结果为true其没有任何异常  
                }   catch   (Exception   e)   {  
                        System.out.println( "Exception   from   main ");  
                        e.printStackTrace();  
                }  
                doThings(0);  
        }  
   
        public   static   boolean   test()   throws   Exception   {  
                try   {  
                        throw   new   Exception( "Something   error ");//   第1步.抛出异常  
                }   catch   (Exception   e)   {//   第2步.捕获的异常匹配(声明类或其父类),进入控制块  
                        System.out.println( "Exception   from   e ");//   第3步.打印  
                        return   false;//   第5步.   return前控制转移到finally块,执行完后再返回(这一步被吃掉了,不执行)  
                }   finally   {  
                        return   true;   //   第4步.   控制转移,直接返回,吃掉了异常  
                }  
        }  
         
        public   static   void   doThings(int   i)  
        {  
          try  
          {  
            if(i==0)  
            {  
              //在执行return之前会先执行finally  
              return;  
            }  
            int   t=100/i;  
            System.out.println(t);  
          }catch(Exception   ex)  
          {  
            ex.printStackTrace();  
          }  
          finally  
          {  
            System.out.println( "finally ");  
          }  


        }  
}  


转http://www.javaresearch.org/article/68030.htm

[解决办法]
顶下
[解决办法]
UP
[解决办法]
ding

[解决办法]
学习
[解决办法]
有在finally里面写return的?
[解决办法]
顶。

[解决办法]
科普贴?
[解决办法]

教学篇
[解决办法]
送分帖
[解决办法]
昨天没来
遗憾~
[解决办法]
有一次在QQ群里我们讨论了这个问题,而且比较激烈,后来引出来很多问题。

如果楼主感兴趣可以讨论讨论。
QQ:158750938
[解决办法]
建议大家看一下jvm的实现原理,这些问题将不再是 难题 而是常识!
[解决办法]
好贴就要顶
[解决办法]
又学了一招
[解决办法]
嗯嗯 碰到过这样的问题 以前没注意呢 今天算是复习了~~~
[解决办法]
当然有在finally里写return的~~

热点排行