Java基礎之異常

1、異常
  (1)程序出現的不正常的狀況。
  (2)異常的體系
    Throwable
      |--Error 嚴重問題,咱們不處理。
      |--Exception
        |--RuntimeException 運行期異常,咱們須要修正代碼
        |--非RuntimeException 編譯期異常,必須處理的,不然程序編譯不經過
  (3)異常的處理:
    A:JVM的默認處理
     把異常的名稱,緣由,位置等信息輸出在控制檯,可是呢程序不能繼續執行了。
    B:本身處理
     a:try...catch...finally
       本身編寫處理代碼,後面的程序能夠繼續執行
     b:throws
       把本身處理不了的,在方法上聲明,告訴調用者,這裏有問題
  (4)面試題
    A:編譯期異常和運行期異常的區別?
      編譯期異常 必需要處理的,不然編譯不經過
      運行期異常 能夠不處理,也能夠處理
    B:throw和throws是的區別
      throw:
        在方法體中,後面跟的是異常對象名,而且只能是一個
        throw拋出的是一個異常對象,說明這裏確定有一個異常產生了
      throws:
        在方法聲明上,後面跟的是異常的類名,能夠是多個
      throws是聲明方法有異常,是一種可能性,這個異常並不必定會產生
  (5)finally關鍵字及其面試題
    A:finally用於釋放資源,它的代碼永遠會執行。特殊狀況:在執行到finally以前jvm退出了
    B:面試題
      a:final,finally,finalize的區別?
    b:若是在catch裏面有return,請問finally還執行嗎?若是執行,在return前仍是後
      會,前。

    
    C:異常處理的變形
      try...catch...finally
      try...catch...
      try...catch...catch...
      try...catch...catch...fianlly
      try...finally
  (6)自定義異常
    繼承自Exception或者RuntimeException,只須要提供無參構造和一個帶參構造便可
   (7)異常的注意實現
    A:父的方法有異常拋出,子的重寫方法在拋出異常的時候必需要小於等於父的異常
    B:父的方法沒有異常拋出,子的重寫方法不能有異常拋出
    C:父的方法拋出多個異常,子的重寫方法必須比父少或者小面試

相關文章
相關標籤/搜索