iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何在SpringBoot项目里进行统一异常处理
  • 903
分享到

如何在SpringBoot项目里进行统一异常处理

2024-04-02 19:04:59 903人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1、处理前2、进行系统异常全局处理3、进行自定义异常处理效果前言: 需要了解的知识: @ControllerAdvice的作用 1、处理前 异常代码: @apiOperatio

前言:

需要了解的知识:

@ControllerAdvice的作用

1、处理前

异常代码:


@apiOperation(value = "根据id获取医院设置")
@GetMapping("/findHospById/{id}")
public Result findHospById(@PathVariable Long id) {
    // 模拟异常(因为除数不能为0)
    int a = 1 / 0;
    HospitalSet hospitalSet = hospitalSetService.getById(id);
    return Result.ok(hospitalSet);
}

Swagger2输出结果:

2、进行系统异常全局处理

添加全局异常处理类:

代码:

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;


@ControllerAdvice
public class GlobalExceptionHandler {
    
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result error(Exception e) {
        e.printStackTrace();
        return Result.fail();
    }
}

Swagger2结果:

3、进行自定义异常处理

开发时,往往需要我们去定义处理一些异常(这里还是那上面的那个异常来做测试

创建自定义异常处理类:

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;

@Data
@ApiModel(value = "自定义全局异常类")
public class YyghException extends RuntimeException {
    @ApiModelProperty(value = "异常状态码")
    private Integer code;
    
    public YyghException(String message, Integer code) {
        super(message);
        this.code = code;
    }
    
    public YyghException(ResultCodeEnum resultCodeEnum) {
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
    }
    @Override
    public String toString() {
        return "YyghException{" +
            "code=" + code +
            ", message=" + this.getMessage() +
            '}';
    }
}

将其添加到GlobalExceptionHandler:


@ExceptionHandler(YyghException.class)
@ResponseBody
public Result divError(YyghException e) {
    return Result.build(e.getCode(), e.getMessage());
}

需要手动 try catch 一下:

效果

swagger和系统异常处理一样

不过后台输出不一样 :

到此这篇关于如何在SpringBoot项目里进行统一异常处理的文章就介绍到这了,更多相关SpringBoot异常处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何在SpringBoot项目里进行统一异常处理

本文链接: https://www.lsjlt.com/news/165445.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作