最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot全局異常捕獲處理實(shí)現(xiàn)方案

 更新時間:2024年02月10日 10:24:13   作者:RobinCode  
這篇文章主要詳細(xì)介紹了SpringBoot全局異常捕獲處理實(shí)現(xiàn)方案,文章通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

在Spring Boot中實(shí)現(xiàn)全局異常處理可以通過以下方式:

  • 使用@ControllerAdvice注釋創(chuàng)建一個全局異常處理類,并使用@ExceptionHandler注釋來定義具體異常的處理方法。
import your.package.IllegalNumberException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @class GlobalExceptionHeadler
 * @date 2021/8/28 13:41
 */
@ControllerAdvice
public class GlobalExceptionHeadler {

    //處理指定異常
    @ExceptionHandler(value = IllegalNumberException.class)//IllegalNumberException 自定義異常
    @ResponseBody
    public ResponseEntity<String> illegalNumberExceptionHeadler(Exception e){
        System.out.println("進(jìn)入非法參數(shù)異常處理");
        return new ResponseEntity<>(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
    }

    //處理exceptioin子類異常
    @ExceptionHandler(value = Exception.class)//作用方法上,作用:用來處理指定異常; value屬性:用來處理指定類型的異常
    @ResponseBody
    public ResponseEntity<String> exceptionHeadler(Exception e){
        //if(e instanceof IllegalNumberException){} 等價于 上面的方法處理指定異常
        System.out.println("進(jìn)入自定義異常處理");
        return new ResponseEntity<>(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
  • 自定義異常
/**
 * @class IllegalNumberException
 * @date 2021/8/28 14:05
 */
public class IllegalNumberException extends RuntimeException{
    public IllegalNumberException(String message){
        super(message);
    }
}
  • Controller
import your.package.IllegalNumberException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class Test2Controller {
    

    @GetMapping("/testException")
    public ResponseEntity<String> demo(){
        int i = 1/0;
        return new ResponseEntity<>("ok", HttpStatus.OK);
    }

    @GetMapping("/testIllegalNumberException/{id}")
    public ResponseEntity<String> demo(@PathVariable("id") Integer id){
        if(id < 0){
            throw new IllegalNumberException("無效id,請檢查");
        }
        return new ResponseEntity<>("ok", HttpStatus.OK);
    }


}
  • Postman測試效果

通用異常:

自定義異常:

 總結(jié)

在以上代碼片段中,使用了 @ExceptionHandler 注解來指定該方法會處理哪種類型的異常。方法體中,你可以自定義返回給用戶的響應(yīng),包括HTTP狀態(tài)碼和返回信息。使用 @ControllerAdvice 注解可以確保它會接收到由控制器拋出的異常。

如果需要更多具體的自定義設(shè)置,還可以在響應(yīng)里添加 headers 信息,或者創(chuàng)建更復(fù)雜的響應(yīng)體,例如使用ResponseEntity。官方的 Spring 框架文檔提供了和這個主題相關(guān)的更多高級選項和最佳實(shí)踐指南。

以上就是SpringBoot全局異常捕獲處理實(shí)現(xiàn)方案的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot全局異常捕獲處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中instance的用法詳解

    Java中instance的用法詳解

    這篇文章主要介紹了Java中instance的用法詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java線程池內(nèi)部任務(wù)出異常后如何知道是哪個線程出了異常

    Java線程池內(nèi)部任務(wù)出異常后如何知道是哪個線程出了異常

    在Java線程池中當(dāng)任務(wù)執(zhí)行過程中發(fā)生異常時,識別發(fā)生異常的任務(wù)所對應(yīng)的線程是一個常見的調(diào)試需求,這篇文章主要介紹了Java線程池內(nèi)部任務(wù)出異常后如何知道是哪個線程出了異常的相關(guān)資料,需要的朋友可以參考下
    2026-01-01
  • org.apache.ibatis.annotations不存在的問題

    org.apache.ibatis.annotations不存在的問題

    這篇文章主要介紹了org.apache.ibatis.annotations不存在的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • django 遞歸查詢評論的示例詳解

    django 遞歸查詢評論的示例詳解

    文章介紹了將表數(shù)據(jù)轉(zhuǎn)換為樹狀結(jié)構(gòu)以及如何處理扁平化數(shù)據(jù)的方法,探討了在數(shù)據(jù)管理中的應(yīng)用和實(shí)現(xiàn)技術(shù),感興趣的朋友一起看看吧
    2025-01-01
  • spring mvc中的@PathVariable動態(tài)參數(shù)詳解

    spring mvc中的@PathVariable動態(tài)參數(shù)詳解

    這篇文章主要介紹了spring mvc中的@PathVariable動態(tài)參數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringMVC post請求的處理

    SpringMVC post請求的處理

    今天小編就為大家分享一篇解決SpringMVC接收不到ajaxPOST參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-07-07
  • Springboot整合activemq的方法步驟

    Springboot整合activemq的方法步驟

    這篇文章主要介紹了Springboot整合activemq的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Spring Boot 2.0多數(shù)據(jù)源配置方法實(shí)例詳解

    Spring Boot 2.0多數(shù)據(jù)源配置方法實(shí)例詳解

    這篇文章主要介紹了Spring Boot 2.0多數(shù)據(jù)源配置方法實(shí)例詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • spring mvc 組合mybatis框架實(shí)例詳解

    spring mvc 組合mybatis框架實(shí)例詳解

    本項目采用 maven 結(jié)構(gòu),主要演示了 spring mvc + mybatis,controller 獲取數(shù)據(jù)后以json 格式返回數(shù)據(jù)。對spring mvc 組合mybatis的方法感興趣的朋友可以參考下本文
    2018-01-01
  • 深入理解Java中的字符串類型

    深入理解Java中的字符串類型

    這篇文章主要介紹了Java中的字符串類型,需要的朋友可以參考下
    2014-02-02

最新評論

青铜峡市| 汝阳县| 汝城县| 昭苏县| 连南| 鄂伦春自治旗| 清水河县| 镇赉县| 海淀区| 新宁县| 临朐县| 洛南县| 商城县| 鄂托克前旗| 新沂市| 龙川县| 陵川县| 碌曲县| 潮安县| 石台县| 无锡市| 额尔古纳市| 黄浦区| 桦川县| 张北县| 诸暨市| 乐亭县| 汶川县| 青州市| 盐山县| 六枝特区| 都匀市| 宣城市| 健康| 垫江县| 江西省| 鄂伦春自治旗| 蓬莱市| 盐城市| 江油市| 南宫市|