1. 程式人生 > >Java異常捕獲之一道try-catch-finally語句題

Java異常捕獲之一道try-catch-finally語句題

span pri div system 處理機 out nal exception for

今天,學習了try-catch-finally語句,本來覺得蠻簡單、易懂的。搜了一道相關類型的題。結果信心被潑了盆冷水。先把題Mark一下,出去透透風。

 1 public class TestEx {
 2     private int c;
 3 
 4     public TestEx() {
 5     }
 6 
 7     @SuppressWarnings("finally")
 8     boolean testEx() throws Exception {
 9         boolean ret = true;
10         try {
11             ret = testEx1();
12 } catch (Exception e) { 13 System.out.println("testEx, catch exception"); 14 ret = false; 15 throw e; 16 } finally { 17 System.out.println("testEx, finally; return value=" + ret); 18 return ret; 19 } 20 } 21 22
@SuppressWarnings("finally") 23 boolean testEx1() throws Exception { 24 boolean ret = true; 25 try { 26 ret = testEx2(); 27 if (!ret) { 28 return false; 29 } 30 System.out.println("testEx1, at the end of try"); 31
return ret; 32 } catch (Exception e) { 33 System.out.println("testEx1, catch exception"); 34 ret = false; 35 throw e; 36 } finally { 37 System.out.println("testEx1, finally; return value=" + ret); 38 return ret; 39 } 40 } 41 42 @SuppressWarnings("finally") 43 boolean testEx2() throws Exception { 44 boolean ret = true; 45 try { 46 int b = 12; 47 for (int i = 2; i >= -2; i--) { 48 setC(b / i); 49 System.out.println("i=" + i); 50 } 51 return true; 52 } catch (Exception e) { 53 System.out.println("testEx2, catch exception"); 54 ret = false; 55 throw e; 56 } finally { 57 System.out.println("testEx2, finally; return value=" + ret); 58 return ret; 59 } 60 } 61 62 public static void main(String[] args) { 63 TestEx testException1 = new TestEx(); 64 try { 65 testException1.testEx(); 66 } catch (Exception e) { 67 e.printStackTrace(); 68 } 69 } 70 71 public int getC() { 72 return c; 73 } 74 75 public void setC(int c) { 76 this.c = c; 77 } 78 }

Output:

技術分享

看完之後我就在想,

1.Java異常處理機制,我真的理解了嗎?

2.Java異常處理,我真的掌握了嗎?

3.catch體裏遇到return 是怎麽處理?

4.finally 體裏有return怎麽處理?

5. catch 和 finally 體裏同時遇上 return 怎麽辦?

6.是不是還有個System.exit()?遇到它又咋辦??

7.僅僅知道throws不是完全之策啊,還要繼續深入理解啊。2017-06-1918:21:08

Java異常捕獲之一道try-catch-finally語句題