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

如何在SpringBoot項目里進行統(tǒng)一異常處理

 更新時間:2022年07月28日 09:11:07   作者:??可愛發(fā)???  
這篇文章主要介紹了如何在SpringBoot項目里進行統(tǒng)一異常處理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值。需要的小伙伴可以參考一下

前言:

需要了解的知識:

@ControllerAdvice的作用

1、處理前

異常代碼:

/**
     * 根據(jù)id獲取醫(yī)院設(shè)置
     *
     * @param id 查看的id編號
     * @return
     */
@ApiOperation(value = "根據(jù)id獲取醫(yī)院設(shè)置")
@GetMapping("/findHospById/{id}")
public Result findHospById(@PathVariable Long id) {
    // 模擬異常(因為除數(shù)不能為0)
    int a = 1 / 0;
    HospitalSet hospitalSet = hospitalSetService.getById(id);
    return Result.ok(hospitalSet);
}

Swagger2輸出結(jié)果:

2、進行系統(tǒng)異常全局處理

添加全局異常處理類:

代碼:

package com.fafa.yygh.common.exception;

import com.fafa.yygh.common.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 全局異常處理
 *
 * @author Sire
 * @version 1.0
 * @date 2022-02-02 21:01
 */
@ControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 系統(tǒng)異常處理
     *
     * @param e
     * @return
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result error(Exception e) {
        e.printStackTrace();
        return Result.fail();
    }
}

Swagger2結(jié)果:

3、進行自定義異常處理

開發(fā)時,往往需要我們?nèi)ザx處理一些異常(這里還是那上面的那個異常來做測試)

創(chuàng)建自定義異常處理類:

package com.fafa.yygh.common.exception;
import com.fafa.yygh.common.result.ResultCodeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 自定義全局異常類
 *
 * @author qy
 */
@Data
@ApiModel(value = "自定義全局異常類")
public class YyghException extends RuntimeException {
    @ApiModelProperty(value = "異常狀態(tài)碼")
    private Integer code;
    /**
     * 通過狀態(tài)碼和錯誤消息創(chuàng)建異常對象
     *
     * @param message
     * @param code
     */
    public YyghException(String message, Integer code) {
        super(message);
        this.code = code;
    }
    /**
     * 接收枚舉類型對象
     *
     * @param resultCodeEnum
     */
    public YyghException(ResultCodeEnum resultCodeEnum) {
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
    }
    @Override
    public String toString() {
        return "YyghException{" +
            "code=" + code +
            ", message=" + this.getMessage() +
            '}';
    }
}

將其添加到GlobalExceptionHandler:

/**
     * 自定義異常處理
     *
     * @param e
     * @return
     */
@ExceptionHandler(YyghException.class)
@ResponseBody
public Result divError(YyghException e) {
    return Result.build(e.getCode(), e.getMessage());
}

需要手動 try catch 一下:

效果

swagger和系統(tǒng)異常處理一樣

不過后臺輸出不一樣 :

到此這篇關(guān)于如何在SpringBoot項目里進行統(tǒng)一異常處理的文章就介紹到這了,更多相關(guān)SpringBoot異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法

    java實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法

    下面小編就為大家?guī)硪黄猨ava實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 基于@AliasFor注解的用法及說明

    基于@AliasFor注解的用法及說明

    這篇文章主要介紹了基于@AliasFor注解的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Go Java算法之外觀數(shù)列實現(xiàn)方法示例詳解

    Go Java算法之外觀數(shù)列實現(xiàn)方法示例詳解

    這篇文章主要為大家介紹了Go Java算法外觀數(shù)列實現(xiàn)的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 輕松掌握java外觀模式

    輕松掌握java外觀模式

    這篇文章主要幫助大家輕松掌握java外觀模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java 關(guān)于遞歸的調(diào)用機制精細解讀

    Java 關(guān)于遞歸的調(diào)用機制精細解讀

    關(guān)于遞歸是什么,簡單的說: 遞歸就是方法自己調(diào)用自己,每次調(diào)用時 傳入不同的變量.遞歸有助于編程者解決復雜的問題,同時可以讓代碼變得簡潔
    2021-10-10
  • Spring boot整合security詳解

    Spring boot整合security詳解

    Spring Security是一個功能強大且高度可定制的身份驗證和訪問控制框架,本文主要介紹了SpringBoot整合Security安全框架的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • SpringBoot集成Lettuce客戶端操作Redis的實現(xiàn)

    SpringBoot集成Lettuce客戶端操作Redis的實現(xiàn)

    本文主要介紹了SpringBoot集成Lettuce客戶端操作Redis的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • IntelliJ IDEA 2021.1 EAP 1 發(fā)布支持 Java 16 和 WSL 2

    IntelliJ IDEA 2021.1 EAP 1 發(fā)布支持 Java 16 和 WSL 2

    這篇文章主要介紹了IntelliJ IDEA 2021.1 EAP 1 發(fā)布支持 Java 16 和 WSL 2,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 使用Nacos作為配置中心的命名空間、配置分組

    使用Nacos作為配置中心的命名空間、配置分組

    文章詳細介紹了Spring Cloud Config配置中心的命名空間、配置集、配置集ID、配置分組以及如何在微服務(wù)中加載和使用這些配置,通過配置中心,可以實現(xiàn)配置隔離和集中管理,簡化微服務(wù)的配置維護
    2024-12-12
  • RabbitMQ中的延遲隊列機制詳解

    RabbitMQ中的延遲隊列機制詳解

    這篇文章主要介紹了RabbitMQ中的延遲隊列機制詳解,延時隊列內(nèi)部是有序的,最重要的特性就體現(xiàn)在它的延時屬性上,延時隊列中的元素是希望,在指定時間到了以后或之前取出和處理,簡單來說,延時隊列就是用來存放需要在指定時間被處理的元素的隊列,需要的朋友可以參考下
    2023-09-09

最新評論

久治县| 克拉玛依市| 晋中市| 开阳县| 和田市| 清河县| 双流县| 新田县| 页游| 柘城县| 柘城县| 沿河| 平顶山市| 新建县| 买车| 连云港市| 宜宾县| 大连市| 金溪县| 内江市| 敖汉旗| 抚州市| 清水县| 绥滨县| 无棣县| 祥云县| 安陆市| 渝北区| 呼图壁县| 平山县| 九寨沟县| 河源市| 临湘市| 普兰店市| 革吉县| 利川市| 陇西县| 义乌市| 曲水县| 清水河县| 平陆县|