異常處理
tips
現在流行的基本前後端互動都是通過json格式,所以有一定規模的專案都會這樣子做,往往後端定義統一規範給前端進行互動。 (基本的**片在這,不提供額外的github位址)
@getter
@allargsconstructor
public
enum resultcodeenum
@data
@builder
@allargsconstructor
@noargsconstructor
public
class
result
implements
serializable
public
static result<
?>
error()
public
static result<
?>
setresult
(resultcodeenum resultcodeenum)
public result<
?>
message
(string message)
public result<
?>
code
(string code)
public result<
?>
success
(boolean success)
public result<
?>
data
(object data)
}
@data
public
class
busines***ception
extends
runtimeexception
public
busines***ception
(resultcodeenum resultcodeenum)
@override
public string tostring()
';}}
@slf4j
@restcontrolleradvice
public
class
globalexceptionadapter")
string profile;
@value()
/** * 全域性異常
("環境:["
+ profile +
"], 微服務: ["
"], 介面 ["
+ request.
getrequesturi()
+);}
/** * 方法接收到非法引數異常
("環境:["
+ profile +
"], 微服務: ["
"], 介面 ["
+ request.
getrequesturi()
+"] 非法引數異常");
}/**
* 處理檔案上傳大小過大異常
("環境:["
+ profile +
"], 微服務: ["
"], 介面 ["
+ request.
getrequesturi()
+"] 上傳大小過大異常");
}/**
* 方法無效異常
/** * 業務異常
/** * 方法引數異常
}
那麼還需要在控制層新增bingdingresult嗎? 答案是需要的。不然你所有的錯誤都會給 methodargumentnotvalidexception.class攔截,原因是@validated需要和 bingdingresult繫結使用。詳情可以看底層原始碼了解!
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 現在網上一般都...