《瘋狂的JAVA講義》筆記-第10章異常

《瘋狂的JAVA講義》筆記-第10章異常

  • try...catch...finally
    • try 塊後面必須出現 catch 塊或者 finally 塊或者同時出現
    • 在 try 塊中遇到 return 並不會馬上返回,而是去執行 finally 塊中的內容;因此如果 finally 塊中有return語句,則會在 finally中返回;如果沒有,則返回 try 塊執行 return 語句。因此在 finally 中使用 return語句,會導致一些奇怪的bug
    • try塊中定義的變量 不可以在 catch 或者 finally 中使用,局部變量的生命週期爲 {} 之間
    • JAVA 7 提供了 catch 多個異常的方法,如 catch (NullPointerException | IndexOutOfBoundException ie){},在這種情況下,異常變量是隱式使用了 final,是不可變的
    • JAVA 7 提供了自動關閉資源的try語句,但需要資源類實現 Closeable接口,用法
      try(
      		PrintStream ps = new PrintStream(new FileOutputStream("a.txt"));
      		BufferReader br = new BufferReader(new fileReader("hhh.java"));
      	){
      		// 在這裏使用資源
      		System.out.println(br.readLine());
      	}
      
  • checkedunchecked 異常
    • checked 異常在編譯前就需要被處理,即需要用try...catch塊包圍或者throw出去讓調用者處理;unchecked 異常可以不處理。
    • 不推薦使用checked異常,因爲會使得調用者與接口存在 異常耦合
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章