成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

spring boot 全局異常 springboot接口參數(shù)注解怎么處理異常參數(shù)?

springboot接口參數(shù)注解怎么處理異常參數(shù)?帶有@Valid的注釋用于幫助我們檢查參數(shù)。在最初定義的統(tǒng)一異常處理類中,我們可以捕捉methodirgumentnotvalidexc如何處理Spr

springboot接口參數(shù)注解怎么處理異常參數(shù)?

帶有@Valid的注釋用于幫助我們檢查參數(shù)。在最初定義的統(tǒng)一異常處理類中,我們可以捕捉methodirgumentnotvalidexc

如何處理SpringBoot全局異常與數(shù)據(jù)校驗(yàn)?

這個問題其實(shí)是兩個方面,一個是SpringBoot的全局異常處理方法,一個是SpringBoot的數(shù)據(jù)驗(yàn)證。讓 讓我們一個一個來。

事實(shí)上,全局異常處理需要我們統(tǒng)一捕獲和處理系統(tǒng)運(yùn)行中的異常,具體的處理邏輯是根據(jù)業(yè)務(wù)進(jìn)行的,可以記錄在日志中,由前端返回,再由前端提示。

那么如何捕獲和處理這樣的全局異常呢?

在SpringBoot中,有一個注解——@ controller advice。由該注釋修改的bean表示它已經(jīng)啟用了全局異常的捕獲。我們只需要在這個帶注釋的類中定義一個方法,使用@ExceptionHandler的注釋,我們需要定義要捕獲的異常的類型,來統(tǒng)一處理這些捕獲的異常。

在實(shí)際生產(chǎn)中,我們通常會為業(yè)務(wù)定義一些自定義異常來捕捉業(yè)務(wù)中不合理的情況,比如數(shù)據(jù)異常;然后由@ControllerAdvice定義的類中的@ExceptionHandle方法攔截異常,從而捕獲并處理異常。

給一個 "栗子 "!

我首先定義了一個新的異常類來捕獲業(yè)務(wù)場景中的各種業(yè)務(wù)問題:

在業(yè)務(wù)場景中,如果遇到不正確的操作,將引發(fā)以下異常:

拋出的異常將被我們定義的全局異常處理程序捕獲和處理:

至此,實(shí)現(xiàn)了SpringBoot的全局異常處理。

讓 讓我們來談?wù)勵}主提到的數(shù)據(jù)驗(yàn)證。通常我們在操作數(shù)據(jù)時,不僅前端需要對數(shù)據(jù)進(jìn)行驗(yàn)證,后端也要進(jìn)行攔截并給出相應(yīng)的。

我們可以使用SpringBoot中包含的hibernate-validator來做這件事。

既然hibernate-validator已經(jīng)包含在spring-boot-starter-web中,我們就不做 不需要介紹jar。

給一個 "栗子 "!

在需要驗(yàn)證的實(shí)體類中,我們使用相應(yīng)的注釋。常見的注釋有很多,最常見的是 amp的判斷非空 ",即@NotBlank注釋:

然后,在控制器層中,將通過用@Valid注釋進(jìn)行標(biāo)記來檢查接收實(shí)體:

驗(yàn)證失敗后,我們可以定義一個全局異常處理程序來捕獲數(shù)據(jù)驗(yàn)證。失敗,從而返回到統(tǒng)一的返回值處理。

當(dāng)兩者結(jié)合時,可以優(yōu)雅地實(shí)現(xiàn)用于數(shù)據(jù)驗(yàn)證的全局異常捕獲的統(tǒng)一處理。

歡迎關(guān)注我的頭條【首頁程序員】繼續(xù)思考有趣的標(biāo)題(不是內(nèi)容哈哈)。

——一個閑來無事,呆在家里的家庭程序員。我不 我不想掉頭發(fā)!)