java---try和throws異常總結

什麼是異常?

異常是對問題的描述,將問題對象進行封裝成一個對象.java

異常的體系

Throwable
     |—–Error
     |—–Exception
        |—–RuntimeException
  特色:異常體系中的全部類以及創建的對象都具有可拋性.也就是說能夠被throw和throws關鍵字所操做,只有異常類體系具有這個特色,markdown

throw和throws的用法

throw定義在函數內,用於拋出異常對象
throws定義在函數上,用於拋出異常類,能夠拋出多個用逗號隔開的異常類函數

當函數內容有throw拋出異常對象,並未進行try處理,必需要在函數上聲明,不然編譯報錯.固然RuntimeException除外,也就是說,函數內若是拋出RuntimeException異常,函數上不須要聲明.spa

異常的處理

若是函數聲明瞭異常,調用者須要進行處理,處理方法能夠是throws和try
異常有兩種:
   編譯時被檢測異常
     該異常在編譯時,若是沒有處理(沒有拋出也沒有try),編譯失敗
   運行時異常(編譯時不檢測)
     在編譯時不須要處理,編譯器不檢查
     該異常發生,建議不處理,讓程序中止,須要對代碼進行修正.code

異常處理格式:

try{
//須要被檢測的代碼
}
catch(){
//處理異常的代碼
}
finally{
//必定會執行的代碼
}

注意:
1.finally中定義的一般是 關閉資源代碼,由於資源必須釋放
2.finally只有一種狀況不會執行,當程序在finally以前強行中止,也就是System,exit(0)對象

自定義異常:

定義類繼承Exception或者RuntimeException
   1.爲了讓該自定義類具備可拋性
   2.讓該類具有操做異常的共性方法繼承

 當要定義的自定義異常信息時,可使用父類已經定義好的功能.異常信息傳遞給父類的構造函數.接口

class MyException extends Exception {
    MyException(String message){
        super(message);
    }
}

自定義異常:按照java面向對象的思想,將程序中出現的特有問題進行封裝.資源

異常的處理原則

1.調用到拋出異常的功能時,拋出幾個就處理幾個.也就是一個try對應多個catch
2.多個catch狀況下,父類的catch放到最下面,以避免覆蓋異常
3.catch內須要定義針對性的處理方式,不要簡單的定義輸出語句,也不要不寫,這是良好的代碼習慣編譯器

異常的注意事項

在子父類覆蓋時: 1.子類拋出的異常必須是父類的異常的子類或者子集 2.若是父類或者接口沒有異常拋出時,子類覆蓋出現異常,只能try,不能拋出

相關文章
相關標籤/搜索