Exception

異常

Throwable(拋)

  • Exception 凡是能夠用代碼去糾正的就是異常
  • 分類
    • 編譯期異常——檢查異常CheckedException
    • 運行時異常——不檢查異常UncheckEeception
      • RuntimeException
  • Error 不能用代碼去解決的就是錯誤,錯誤不是異常。例如:硬件問題,環境問題。
  • 異常的產生和處理機制

處理

  • 提前判斷
  • try…catch
    • 語法上:只有以下三種
    • try - catch
    • try - finally //只有exit()能結束。
    • try - catch - finally
  • 拋出去
  • finally關鍵字

捕獲異常

  • try{ //try後面允許接多個catch
  • 正常邏輯下有可能發生異常的代碼
  • }catch(異常類型){
  • 處理代碼}finally{
  • 不管是否發生異常,都必須要執行的代碼寫在finally
  • 就算是retuen\break等跳轉語句,也要先執行finally,再跳轉
  • 除了exit(),可以退出,其他都不能
  • 往往是資源的清理,通道的關閉,各種連接用完後的關閉才使用
  • }

    • 當兩個異常有繼承關係時,子類的catch寫前面,父類的寫後面

    • throw是寫在方法體中,後面接的是一個異常對象,一旦執行到這句代碼就會真正的發生異常拋出的動作

    • throws是寫在方法聲明的最後,後面跟的是異常類的類名,可以跟多個,中間用逗號分隔,是警告方法的調用者,本方法有可能出現警告異常。
    • 當throw後面跟的是一個運行時異常時,並不要求寫throws,即使寫了,使用者也不會受到警告
    • 但是throw是編譯時異常(包括Exception),就必須在聲明部分加throws

分層架構

  • 三層結構 //一層一層向上拋
    • 界面
    • 業務層
      • 業務處理
    • 持久層/持久訪問層
      • 完成數據庫操作/CRUD操作
  • Throwable的兩個類

    • getMessage
    • printStackTrace
      自定義異常
  • **繼承**Exception或者Throwable

  • 書寫帶參構造,將已發生的異常對象的信息封裝到自定義異常對象身上
    • 業務異常虛擬機不一定報異常,書寫帶參構造,將業務異常信息裝入自定義異常對象身上
  • 添加自定義異常的特有方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章