可預知的異常處理和不可預知的異常處理

2021-10-09 17:44:49 字數 1455 閱讀 3202

1、自定義異常型別。

2、自定義錯誤**及錯誤資訊。

3、對於可預知的異常由程式設計師在**中主動丟擲,由springmvc統一捕獲。

可預知異常是程式設計師在**中手動丟擲本系統定義的特定異常型別,由於是程式設計師丟擲的異常,通常異常資訊比較齊全,程式設計師在丟擲時會指定錯誤**及錯誤資訊,獲取異常資訊也比較方便。

4、對於不可預知的異常(執行時異常)由springmvc統一捕獲exception型別的異常。

不可預知異常通常是由於系統出現bug、或一些不要抗拒的錯誤(比如網路中斷、伺服器宕機等),異常型別為runtimeexception型別(執行時異常)。

5、可預知的異常及不可預知的執行時異常最終會採用統一的資訊格式(錯誤**+錯誤資訊)來表示,最終也會隨請求響應給客戶端。

1、在controller、service、dao中程式設計師拋出自定義異常;

2、統一由異常捕獲類捕獲異常,並進行處理

3、捕獲到自定義異常則直接取出錯誤**及錯誤資訊,響應給使用者。

例如:

// 自定義異常類

public class customexception extends runtimeexception

public resultcode getresultcode()

}//異常丟擲類

public class exceptioncast

}//異常捕獲

@controlleradvice

public class exceptioncatch \r\nexception: ",e.getmessage(), e);

resultcode resultcode = e.getresultcode();

responseresult responseresult = new responseresult(resultcode);

return responseresult;}}

//注意需要在sringboot入口函式指定要掃瞄到的包

定義乙個列舉型別的類,存放異常物件

public enum cmscode implements resultcode \r\nexception: ",e.getmessage(), e);

if(exceptions == null)

exceptions = builder.build();

//從exception的位元組碼檔案中查詢map集合中是否包含我們定義的一些異常型別

final resultcode resultcode = exceptions.get(e.getclass());

final responseresult responseresult;

if (resultcode != null) else

return responseresult;

static

}//還需要在列舉類中定義自己的resultcode物件。

異常處理(自定義異常 不可預知異常)

1 在controller service dao中程式設計師拋出自定義異常 springmvc框架丟擲框架異常型別 springmvc框架和第三方元件丟擲不可預知異常。2 統一由異常捕獲類捕獲異常,並進行處理 3 捕獲到自定義異常則直接取出錯誤 及錯誤資訊,響應給使用者。4 捕獲到非自定義異常型別...

TP5使用API時不可預知的內部異常

最常見的錯誤形式例如 controller不存在或者 action不存在之類的 我們第一時間想到的 就是 使用 try catch 來捕獲 例如 show方法在common裡定義過 統一返回介面 return array public function test catch exception e ...

永遠有我們不可預知的錯誤存在!

本來我想把這個blog寫的內容是,用鼓勵的話對一些青年朋友的成長過程中遇到的挫折和迷茫的心情加以解釋,幫助這些尚未踏入社會,或者進入社會不久的青少年朋友成長起來。就像微軟的李開復先生那樣做。但是很可惜,我既沒有李先生那樣豐富的經歷,也沒有李先生高超的文字功底和演講水平,所以這個blog被我搞到現在,...