在統一異常處理的時候,要明確兩點
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 現在網上一般都...