SpringBoot統一異常處理

2021-09-21 00:25:56 字數 1873 閱讀 1036

在統一異常處理的時候,要明確兩點

1.自定義異常在**丟擲

2.異常(自定義異常+不可預知異常)在**捕獲

圖要:

1.自定義異常需要繼承runtimeexception

2.異常資訊: 錯誤**+異常資訊

/**

自定義異常類

*/public

class

customexception

extends

runtimeexception

public resultcode getresultcode()

}

異常丟擲類

/**	

異常丟擲類

*/public

class

exceptioncast

}

1.@controlleradvice

2.@exceptionhandler(要捕獲的異常類.class)

/**

統一異常捕獲類

*/@controlleradvice

public

class

exceptioncatch

}

增加exception異常捕獲

思路:從map中找出異常型別對應的錯誤**及錯誤資訊,如果找到了,就存到resultcode中,構建responseresult中返回,如果根據異常型別無法找到對應的錯誤**及錯誤資訊(resultcode為空),則使用通用錯誤**commoncode構建responseresult返回

@controlleradvice

public

class

exceptioncatch

//捕獲exception異常

@responsebody

@exceptionhandler

(exception.

class

)public responseresult exception

(exception e)

//根據異常型別從map中取出對應的錯誤**

final resultcode resultcode = exceptions.

get(e.

getclass()

);final responseresult responseresult;

if(resultcode != null)

else

return responseresult;

}}

注意:需要在springboot啟動類中新增對異常捕獲類的掃瞄

1.定義與業務相關聯的的異常資訊**

@tostring

public

enum cmscode implements

resultcode

@override

public

boolean

success()

@override

public

intcode()

@override

public string message()

}

2.拋出自定義異常

/**

在新增頁面之前,先去查詢頁面是否存在,如果存在就丟擲頁面已存在的自定義異常

*/exceptioncast.

cast

(cmscode.cms_addpage_exists)

;

Spring Boot學習筆記8 統一異常處理

雖然,spring boot中實現了預設的error對映,但是在實際應用中,預設的錯誤頁面對使用者來說並不夠友好,我們通常需要去實現我們自己的異常提示。下面我們以之前的spring bootx學習筆記7 使用thymeleaf模板引擎渲染web檢視為基礎,進行統一異常處理的改造。public cla...

spring boot統一異常處理

1 統一處理異常的html頁面。spring boot提供了乙個預設的對映 error,當處理中丟擲異常之後,會轉到該請求中處理,並且該請求有乙個預設的錯誤頁面用來展示異常內容。例如,我們隨便輸入乙個錯誤的url,瀏覽器響應的頁面如下圖所示 它是根據狀態碼來顯示錯誤頁面的,那麼我們不想要 sprin...

SpringBoot 統一異常處理

統一異常處理 controlleradvice public class globalexceptionhandler exceptionhandler exception.class responsebody public r handleexception exception e 現在網上一般都...