精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Boot 實現異常統一處理

開發 前端
異常處理方法返回的是包含 ErrorResponse? 對象的 ResponseEntity?,前端可以根據 ErrorResponse? 中的 code? 和 message 字段來處理錯誤信息。

一、引言

在開發基于 Spring Boot 的應用程序時,異常處理是一個不可忽視的重要環節。良好的異常處理機制可以提高系統的健壯性和可維護性,同時為用戶和開發者提供更友好的錯誤反饋。在傳統的開發中,我們可能會在每個控制器方法中編寫大量的異常處理代碼,這樣會導致代碼冗余且難以維護。Spring Boot 提供了強大的異常統一處理機制,通過使用注解和特定的類,我們可以將異常處理邏輯集中管理,避免代碼重復,提高開發效率。

二、Spring Boot 異常處理基礎

在 Spring Boot 中,異常處理主要基于兩個核心概念:@ControllerAdvice 和 @ExceptionHandler。

2.1 @ControllerAdvice

@ControllerAdvice 是一個特殊的 @Component,用于定義 @ExceptionHandler、@InitBinder 和 @ModelAttribute 方法,這些方法將應用到所有使用 @RequestMapping 注解的控制器類中的方法。簡單來說,@ControllerAdvice 是一個全局的異常處理類,它可以捕獲所有控制器中拋出的異常。

2.2 @ExceptionHandler

@ExceptionHandler 注解用于指定處理特定異常的方法。當控制器方法拋出指定類型的異常時,Spring Boot 會自動調用被 @ExceptionHandler 注解標注的方法來處理該異常。

三、實現異常統一處理的步驟

3.1 創建自定義異常類

首先,我們可以創建自定義異常類,以便在業務邏輯中拋出特定類型的異常。例如:

public class CustomException extends RuntimeException {
    private int code;
    private String message;

    public CustomException(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}

3.2 創建全局異常處理類

使用 @ControllerAdvice 和 @ExceptionHandler 注解創建全局異常處理類:

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(CustomException.class)
    public ResponseEntity<String> handleCustomException(CustomException ex) {
        return new ResponseEntity<>("Custom Exception: Code - " + ex.getCode() + ", Message - " + ex.getMessage(), HttpStatus.BAD_REQUEST);
    }

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleGeneralException(Exception ex) {
        return new ResponseEntity<>("General Exception: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

在上述代碼中,GlobalExceptionHandler 類使用 @ControllerAdvice 注解,表明它是一個全局異常處理類。handleCustomException 方法使用 @ExceptionHandler 注解,專門處理 CustomException 類型的異常,返回一個包含異常信息的 ResponseEntity 對象,狀態碼為 400 Bad Request。handleGeneralException 方法處理所有其他類型的異常,返回一個包含異常信息的 ResponseEntity 對象,狀態碼為 500 Internal Server Error。

3.3 在控制器中拋出異常

創建一個簡單的控制器,在其中拋出異常:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/test")
    public String test() {
        throw new CustomException(1001, "This is a custom exception");
    }
}

當訪問 /test 接口時,控制器方法會拋出 CustomException 異常,該異常會被 GlobalExceptionHandler 類中的 handleCustomException 方法捕獲并處理。

四、返回統一的錯誤響應格式

為了讓前端更容易處理錯誤信息,我們可以定義一個統一的錯誤響應格式。

4.1 創建錯誤響應類

public class ErrorResponse {
    private int code;
    private String message;

    public ErrorResponse(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}

4.2 修改全局異常處理類

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(CustomException.class)
    public ResponseEntity<ErrorResponse> handleCustomException(CustomException ex) {
        ErrorResponse errorResponse = new ErrorResponse(ex.getCode(), ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
    }

    @ExceptionHandler(Exception.class)
    public ResponseEntity<ErrorResponse> handleGeneralException(Exception ex) {
        ErrorResponse errorResponse = new ErrorResponse(500, ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

現在,異常處理方法返回的是包含 ErrorResponse 對象的 ResponseEntity,前端可以根據 ErrorResponse 中的 code 和 message 字段來處理錯誤信息。

五、總結

通過使用 @ControllerAdvice 和 @ExceptionHandler 注解,我們可以在 Spring Boot 中實現異常的統一處理。這種方式將異常處理邏輯集中管理,避免了代碼冗余,提高了系統的可維護性。同時,定義統一的錯誤響應格式可以讓前端更容易處理錯誤信息,提升用戶體驗。在實際開發中,我們可以根據業務需求創建更多的自定義異常類,并在全局異常處理類中添加相應的處理方法。

責任編輯:武曉燕 來源: 程序員conan
相關推薦

2024-08-09 08:25:32

Spring流程注解

2019-08-22 14:02:00

Spring BootRestful APIJava

2020-05-26 13:48:05

后端框架異常

2023-12-05 14:10:00

接口可讀性

2021-04-30 07:34:01

Spring BootController項目

2017-05-18 14:14:25

過濾器Spring ClouZuul

2023-11-28 14:32:04

2024-09-25 08:10:00

Spring后端

2020-11-10 10:21:31

架構try...catch代碼

2009-06-22 10:41:34

Spring.AOP

2018-04-27 14:18:01

2019-10-09 13:39:39

Python編程語言異常錯誤

2017-05-19 15:13:05

過濾器Spring ClouZuul

2017-07-31 15:47:50

Zuul統一處理

2022-04-08 16:27:48

SpringBoot異常處理

2023-11-30 07:00:56

SpringBoot處理器

2023-11-08 13:33:00

AOP技術信息

2011-04-20 11:04:23

LinuxHTTP 302

2009-08-27 09:57:24

Power7處理器

2022-05-30 08:03:06

后端參數校驗異常處理
點贊
收藏

51CTO技術棧公眾號

黄色毛片在线看| 800av免费在线观看| 四虎国产精品免费久久5151| 亚洲欧美日韩国产成人精品影院| 99国产超薄肉色丝袜交足的后果| 国产一级aa大片毛片| 亚洲精华一区二区三区| 欧美色图天堂网| 99久久99久久精品| 精品av中文字幕在线毛片| 久久99精品久久久久久国产越南 | 好吊色欧美一区二区三区| 香蕉影院在线观看| 欧美1级日本1级| 亚洲性视频网址| 婷婷激情小说网| 日韩中文影院| 天天av天天翘天天综合网色鬼国产| 亚洲欧美一区二区原创| 天天干天天摸天天操| 精品无人区卡一卡二卡三乱码免费卡 | 熟女少妇一区二区三区| 国产在线不卡一区二区三区| 日韩欧美亚洲成人| 国内少妇毛片视频| 亚乱亚乱亚洲乱妇| 久久久噜噜噜久久人人看| 1区1区3区4区产品乱码芒果精品| 欧美人一级淫片a免费播放| 国产精品红桃| 久久影视电视剧免费网站| 性欧美精品男男| 精品日产乱码久久久久久仙踪林| 欧美一级欧美一级在线播放| 国产小视频精品| 亚洲精品中文字幕| 亚洲国产精品一区二区www在线 | 欧美精品一卡两卡| 亚洲乱码国产一区三区| 在线天堂资源| 欧美性生交xxxxxdddd| 成人免费观看cn| 国产天堂在线播放视频| 亚洲欧美日韩一区二区| 亚洲视频在线观看日本a| 国产三级视频在线播放线观看| av在线一区二区| 国产亚洲欧美一区二区| 蜜桃av中文字幕| 成人手机在线视频| 国产手机精品在线| 人妻丰满熟妇av无码区hd| 成人性生交大片免费看中文| 亚洲mm色国产网站| 国产美女免费看| 国产成人午夜精品影院观看视频 | xx欧美撒尿嘘撒尿xx| 四虎4545www国产精品| 色94色欧美sute亚洲线路二| 日本成人在线免费视频| 成人四虎影院| 欧美二区三区的天堂| 特级西西444www| 亚洲午夜精品| 精品国产髙清在线看国产毛片| 人妻互换一二三区激情视频| 黑人久久a级毛片免费观看| 日韩精品一区二区三区在线| 中文字幕久久久久久久| 日韩黄色a级片| 欧美黄色一级视频| 久久69精品久久久久久久电影好| 中日韩一级黄色片| 亚洲天天综合| 欧美精品激情在线观看| 动漫精品一区一码二码三码四码| 一区在线播放| 5566成人精品视频免费| 亚洲欧美偷拍视频| 日本不卡不码高清免费观看| 国产啪精品视频网站| 国产情侣小视频| 精品一区二区成人精品| 99se婷婷在线视频观看| 天天摸天天干天天操| 久久久欧美精品sm网站| 亚洲砖区区免费| 美足av综合网| 一本大道综合伊人精品热热| 色一情一区二区| av综合网页| 亚洲毛茸茸少妇高潮呻吟| 老司机福利在线观看| 欧美日本免费| 国产精品99久久久久久人| 国产麻豆免费观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 美女av在线免费看| 欧美日韩在线三区| 日本五十肥熟交尾| 久久国产成人精品| 久久久女女女女999久久| 久久久久久不卡| 极品少妇xxxx精品少妇| 国产免费一区二区| 无遮挡的视频在线观看| 午夜伦理一区二区| 色综合五月婷婷| 国产免费播放一区二区| 欧美疯狂性受xxxxx另类| 手机看片久久久| 国产成人无遮挡在线视频| 日韩久久久久久久久久久久久| 在线中文字幕电影| 欧美午夜宅男影院| www.超碰97| 久久综合国产精品| 日本不卡视频一二三区| 91精品视频在线| 日本一二三区在线视频| 亚洲私人影院在线观看| 日本精品一区二区三区四区| 精品久久亚洲| 国产性色av一区二区| 国产无遮挡aaa片爽爽| 激情小说亚洲一区| 午夜精品美女久久久久av福利| 蜜桃传媒在线观看免费进入| 8v天堂国产在线一区二区| 日本美女xxx| 久久午夜电影| 免费国产一区| 欧亚av在线| 亚洲成人a级网| 九九视频免费在线观看| 国内成人自拍视频| 自拍偷拍一区二区三区| 黄色欧美视频| 中文亚洲视频在线| 久久久久精彩视频| 久久美女高清视频 | 亚洲国产一区二区三区在线播放| 国产91免费看片| 欧洲伦理片一区 二区 三区| 欧美日韩美女在线观看| 看全色黄大色黄女片18| 在线精品观看| 国产欧美韩日| 国产伦子伦对白在线播放观看| 亚洲精品在线电影| 国产一级一片免费播放放a| 国产+成+人+亚洲欧洲自线| 人妻无码一区二区三区四区| 欧美精品三级在线| 欧美激情奇米色| 日韩在线视频观看免费| 精品久久久中文| 亚洲午夜福利在线观看| 久久视频一区| 亚洲在线色站| 欧美高清一级片| 高清一区二区三区日本久| 日本美女一级视频| 色综合天天综合网天天狠天天| 91久久免费视频| 免费美女久久99| ijzzijzzij亚洲大全| 一区二区三区在线免费看| 久久久久国产一区二区三区| 日本精品999| 福利一区福利二区微拍刺激| 国产一区二区三区四区五区六区| 日本午夜一区二区| 中国一级黄色录像| 欧美巨大xxxx| 国产精品久久久久久久9999| 国产调教视频在线观看| 亚洲电影av在线| 国产精品suv一区| 国产精品久久久久久久裸模 | 亚洲老司机网| 欧美激情三级免费| 国产高清在线观看| 欧美一区二区在线免费播放| 日韩欧美视频在线免费观看| 国产欧美一区二区三区鸳鸯浴| 911福利视频| 日韩视频一区| 宅男一区二区三区| 女人抽搐喷水高潮国产精品| 国产精品久久久久久五月尺| 羞羞的视频在线看| 亚洲一级免费视频| 亚洲精品久久久久久久久久久久久久| 欧美色视频日本版| www.99re7| 国产色产综合色产在线视频| japan高清日本乱xxxxx| 日韩高清在线一区| 国产精品视频一二三四区| 欧美日韩激情| 国产日韩欧美精品| 国产 日韩 欧美| 国产成人精品一区二区| 黄污视频在线观看| 久久久精品一区| 福利视频在线导航| 精品成人一区二区三区四区| ,一级淫片a看免费| 色噜噜狠狠成人网p站| 精品少妇久久久| 亚洲欧洲国产日韩| 欧洲av一区二区三区| 成人精品国产免费网站| www.偷拍.com| 蜜臀av性久久久久蜜臀av麻豆| 国产特级黄色大片| 欧美91精品| 在线观看福利一区| 欧美色网址大全| 欧美一区国产一区| 精品综合久久88少妇激情| 91黄色精品| 亚洲91在线| 国产精品久久久久7777婷婷| 一区二区精品伦理...| 久久人人爽人人| 日韩av毛片| 欧美精品在线免费播放| 黄色在线视频网站| 精品国产自在精品国产浪潮| 国产日本在线| 一区二区三区久久精品| 黄色视屏网站在线免费观看| 亚洲精品久久久久中文字幕二区| 亚洲成人77777| 日韩一区和二区| 99国产精品99| 日韩精品一区二区三区swag| 国产乱色精品成人免费视频| 欧美无乱码久久久免费午夜一区| 五月婷婷激情视频| 色哟哟一区二区| 91黑人精品一区二区三区| 在线一区二区三区| 波多野结衣一区二区三区在线| 色999日韩国产欧美一区二区| 无码任你躁久久久久久久| 色婷婷综合视频在线观看| 怡红院av久久久久久久| 91国偷自产一区二区使用方法| 无码人妻一区二区三区线 | 91极品身材尤物theporn| 欧美日韩一区二区在线视频| 亚洲图片中文字幕| 欧美一区二区不卡视频| 性欧美8khd高清极品| 亚洲第一区中文字幕| 亚洲av激情无码专区在线播放| 亚洲精品电影网站| 户外极限露出调教在线视频| 中日韩美女免费视频网址在线观看| 欧美jizzhd69巨大| 欧美剧在线观看| 久草免费在线视频| 国产成人欧美在线观看| 色诱色偷偷久久综合| 亚洲最大的免费| 另类ts人妖一区二区三区| 日本不卡免费新一二三区| 欧美成免费一区二区视频| 成人污网站在线观看| 在线亚洲观看| 网站一区二区三区| 国产在线精品一区二区不卡了| 初高中福利视频网站| 91麻豆高清视频| 啪啪一区二区三区| 亚洲国产视频网站| 国产精品久久久久久人| 欧美精品在线观看一区二区| 国精产品一品二品国精品69xx| 亚洲日本中文字幕| 超碰免费公开在线| 欧美最顶级的aⅴ艳星| 亚洲成a人片777777久久| 国产精品av一区| 欧美一区二区麻豆红桃视频| 操bbb操bbb| 日韩电影在线一区| 亚洲精品成人无码毛片| 国产欧美一区二区精品久导航 | 中文精品在线观看| **欧美大码日韩| 天堂网一区二区三区| 欧美丰满嫩嫩电影| 久草在现在线| 欧美激情xxxxx| 国产成人免费精品| 国严精品久久久久久亚洲影视| 色135综合网| 91九色在线观看视频| 国内外成人在线| 色婷婷av777| 亚洲国产日韩精品| 国产女人18毛片水18精| 亚洲人a成www在线影院| 青青在线视频| 成人精品一区二区三区电影黑人| 欧美深夜视频| 国产女教师bbwbbwbbw| 蜜臀久久99精品久久久久宅男| av网页在线观看| 亚洲激情男女视频| 一本久道久久综合无码中文| 亚洲男人天堂网| av日韩中文| 成人黄色片视频网站| 国产精品毛片一区二区在线看| 日日碰狠狠躁久久躁婷婷| 国产·精品毛片| 538精品在线观看| 在线播放亚洲一区| av大片在线看| 国产精品久久久久av| 在线看成人短视频| 成人毛片一区二区| 成人精品一区二区三区中文字幕| 日本妇女毛茸茸| 欧美精品日韩一本| 午夜精品一区| 国产精品一区二区三区毛片淫片| 精品国产aⅴ| 欧美激情精品久久久久久小说| 91在线小视频| 欧美亚洲精品天堂| 国产手机视频精品| 成人免费无遮挡| 久久青青草原一区二区| 国产日韩欧美三级| 久久国产精品无码一级毛片| 精品高清一区二区三区| 天天舔天天干天天操| 9.1国产丝袜在线观看 | 高清成人在线观看| 国产在线视频99| 亚洲国产97在线精品一区| sm在线观看| 久久久久网址| 久久一二三四| 国产欧美小视频| 7777精品伊人久久久大香线蕉| 毛片在线播放a| 亚洲最大的网站| 亚洲激情黄色| 亚洲做受高潮无遮挡| 欧洲视频一区二区| 九七电影韩国女主播在线观看| 91在线国产电影| 伊人久久成人| 女人又爽又黄免费女仆| 欧美在线不卡一区| 国产91在线视频蝌蚪| 国产精品免费看一区二区三区| 99xxxx成人网| www亚洲色图| 欧美一区二区精品久久911| 国产三线在线| 日韩av免费电影| 国产在线观看一区二区| 国产精彩视频在线| 亚洲天堂第二页| 精品国模一区二区三区欧美| 日韩国产一级片| 亚洲国产精品成人综合色在线婷婷 | 欧美日韩免费| 超碰97人人干| 欧美精品久久99| 国产高清自产拍av在线| 五月天国产一区| 国产成人免费xxxxxxxx| 中文字幕国产在线观看| 久久高清视频免费| 日韩伦理一区二区三区| 日日干夜夜操s8| 午夜a成v人精品| 在线观看麻豆蜜桃| 国产精品日韩欧美一区二区| 日韩电影在线一区二区三区| 毛片a片免费观看| 精品视频—区二区三区免费| 亚洲ww精品| 成人羞羞国产免费网站| 亚洲精品成a人| 在线免费观看黄| 国产综合精品一区二区三区| 久久国产综合精品| 日韩黄色在线播放| 欧美大片第1页| 欧美高清视频在线观看mv|