首页>JAVA>正文

深入理解java异常处理机制

时间:2017-07-06 15:54:53   来源:广州尚学堂   阅读:

 

1. 引子

       try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。

 

  1. package Test;  
  2.   
  3. public class TestException {  
  4.     public TestException() {  
  5.     }  
  6.   
  7.     boolean testEx() throws Exception {  
  8.         boolean ret = true;  
  9.         try {  
  10.             ret = testEx1();  
  11.         } catch (Exception e) {  
  12.             System.out.println("testEx, catch exception");  
  13.             ret = false;  
  14.             throw e;  
  15.         } finally {  
  16.             System.out.println("testEx, finally; return value=" + ret);  
  17.             return ret;  
  18.         }  
  19.     }  
  20.   
  21.     boolean testEx1() throws Exception {  
  22.         boolean ret = true;  
  23.         try {  
  24.             ret = testEx2();  
  25.             if (!ret) {  
  26.                 return false;  
  27.             }  
  28.             System.out.println("testEx1, at the end of try");  
  29.             return ret;  
  30.         } catch (Exception e) {  
  31.             System.out.println("testEx1, catch exception");  
  32.             ret = false;  
  33.             throw e;  
  34.         } finally {  
  35.             System.out.println("testEx1, finally; return value=" + ret);  
  36.             return ret;  
  37.         }  
  38.     }  
  39.   
  40.     boolean testEx2() throws Exception {  
  41.         boolean ret = true;  
  42.         try {  
  43.             int b = 12;  
  44.             int c;  
  45.             for (int i = 2; i >= -2; i--) {  
  46.                 c = b / i;  
  47.                 System.out.println("i=" + i);  
  48.             }  
  49.             return true;  
  50.         } catch (Exception e) {  
  51.             System.out.println("testEx2, catch exception"
分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

020-29896995

微信扫一扫