1. 程式人生 > >複習筆記11 異常的產生和處理

複習筆記11 異常的產生和處理

1 異常體系&異常處理

1.1 異常概述

  我們在寫程式碼的時候,經常的出現一些小問題,那麼為了方便我們處理這些問題,java為我們提供了異常機制

Java中,把異常資訊封裝成了一個類。當出現了問題時,就會建立異常類物件並丟擲異常相關的資訊(如異常出現的位置、原因等)。

Java中使用Exception類來描述異常。

檢視API中Exception的描述,Exception 類及其子類是 Throwable 的一種形式,它用來表示java程式中可能會產生的異常,並要求對產生的異常進行合理的異常處理。

異常包含了錯誤的型別、原因以及位置

異常:不正常,我們在程式碼的時候出現的編譯或者執行時的錯誤

異常的體系結構:

Throwable(最頂層)

    Error:出現的不能夠處理的嚴重問題

    Exception:可以處理的問題

1.2 異常處理

1.2.1 JVM預設處理方式

如果出現異常我們沒有處理,jvm會幫我們進行處理,他會把異常的型別,原因還有位置顯示在命令列並且還終止了程式,異常後面的程式碼將不再執行

1.2.2 try...catch方式處理異常

捕獲:Java中對異常有針對性的語句進行捕獲,可以對出現的異常進行指定方式的處理捕獲異常格式:

try {

  //需要被檢測的語句。

}

catch(異常類 變數) { //引數。

//異常的處理語句。

}

finally {

//一定會被執行的語句。

}

try:該程式碼塊中編寫可能產生異常的程式碼。

catch:用來進行某種異常的捕獲,實現對捕獲到的異常進行處理。

try...catch的執行順序:

 * 首先執行try語句

 * 如果發現異常,異常下面的程式碼不再執行,直接跳入catch語句中,catch語句結束後,整個try...catch結束

 * 如果沒有發現異常,try語句執行結束後,try...catch直接結束, 不在執行catch語句

1.2.3 throws方式處理異常

throws使用:

   許可權修飾符

返回值型別  方法名(形參列表) throws 異常型別1,異常型別2….{

}  

1.2.4 多異常處理

如何處理多個異常:

可以使用多個try...catch語句

使用一個try和多個catch

 

多個catch之間的順序:

多個catch之間可以有子父類

平級之間沒有順序關係

如果有子父類,父類異常必須放在後面

2 Throwable常用方法和自定義異常

2.1 Throwable常用方法

String getMessage() : 原因

String toString()  型別和原因

void printStackTrace():型別原因和位置

2.2 finally概述和應用場景

finally使用格式:

try{

}catch(異常型別 異常變數){

}finally{

   //釋放資源的程式碼

}

2.3 編譯時異常&執行時異常

執行時期異常:RuntimeException的子類就是執行時期異常,在編譯時期可以自由選擇處理或者不處理

編譯時期異常:Exception的子類,非RuntimeExcpetion的子類,在編譯時期必須處理

2.4 自定義異常

throws:處理異常的一種方式,把異常丟擲,由呼叫者來處理

throw:製造異常的方式,並且結束方法

 注意:如果丟擲(throw)的是編譯時期異常,必須在方法宣告處丟擲(throws

 

寫一個類去繼承Exception或者RuntimeException,然後實現多個構造即可