Spring Boot 統一異常處理

2021-10-18 23:17:19 字數 3814 閱讀 8934

異常處理

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 現在網上一般都...