基於spring boot的統一異常處理

2021-09-07 20:17:37 字數 1826 閱讀 5107

一、springboot的預設異常處理

spring boot提供了乙個預設的對映:/error,當處理中丟擲異常之後,會轉到該請求中處理,並且該請求有乙個全域性的錯誤頁面用來展示異常內容。

例如這裡我們認為製造乙個異常

/boys")

public listboylist() throws exception

使用瀏覽器訪問

二、自定義的統一異常處理

雖然spring boot中實現了預設的error對映,但是在實際應用中,上面你的錯誤頁面對使用者來說並不夠友好,我們通常需要去實現我們自己的異常提示。

1) 統一的異常處理類(com.dechy.handle)

@controlleradvice

public

class

exceptionhandle

else

", e);

return resultutil.error(-1, "

未知錯誤");}}

}

2)自定義異常類(com.dechy.exception)

public

class

boyexception extends runtimeexception

public

integer getcode()

public

void

setcode(integer code)

}

3)返回結果列舉(com.dechy.enums)

public

enum

resultenum

public

integer getcode()

public

string getmsg()

}

4)返回結果工具類(com.dechy.util)

public

class

resultutil

public

static

result success()

public

static

result error(integer code, string msg)

}

5)boy實體類(com.dechy.model)

@entity

public

class

boy

public

void

setid (integer id)

public

string getheight ()

public

void

setheight (string height)

public

bigdecimal getweight ()

public

void

setweight (bigdecimal weight)

@override

public

string tostring ()';}}

6)業務層具體使用時丟擲異常,等待統一處理(com.dechy.service)

public

void

chooseboy(integer id) throws exception

else

if (height > 200

) //

... }

基於Spring Boot 的統一錯誤處理

我將展示一下如何在spring boot 下實現統一錯誤處理,使用的工具是idea。首先,我們需要定義乙個自定義名稱的錯誤控制類,我把它叫做weberrorcontroller,這個類需要實現errorcontroller介面,並且重寫裡面的geterrorpath方法才能實現統一錯誤處理,如下 p...

spring boot統一異常處理

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

SpringBoot 統一異常處理

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