统一异常处理

这篇具有很好参考价值的文章主要介绍了统一异常处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot中的统一异常处理

  • Result为封装传递给前端的包装类
  • 全局异常处理
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: KeYu
 * @Package: com.feiyu.common.exception
 * @Date: 2023/05/17/9:05
 * @说明:统一异常处理
 */
@ControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 全局异常处理,执行方法
     * @param e
     * @return
     */
    @ExceptionHandler(Exception.class)   //这里是要捕获的异常类Exception
    @ResponseBody                        //这里返回数据
    public Result error(Exception e){
        e.printStackTrace();             //输出错误
        return Result.fail().massage("执行了全局异常处理。。。。。");
    }
}
  • 特定异常处理
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: KeYu
 * @Package: com.feiyu.common.exception
 * @Date: 2023/05/17/9:05
 * @说明:统一异常处理
 */
@ControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 特定异常处理
     * @param e
     * @return
     */
    @ExceptionHandler(ArithmeticException.class)    //这里是要捕获的异常类ArithmeticException
    @ResponseBody
    public Result error(ArithmeticException e){
        e.printStackTrace();
        return Result.fail().massage("执行了特定异常处理。。。。。");
    }
}
  • 自定义异常处理
  1. 创建异常类,继承RuntimeException
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: KeYu
 * @Package: com.feiyu.common.exception
 * @Date: 2023/05/17/9:23
 * @说明:自定义异常类
 */
@Data
public class FeiYuException extends RuntimeException{
    private Integer code;
    private String msg;

    public FeiYuException(Integer code,String msg){
        super(msg);
        this.code = code;
        this.msg = msg;
    }

    /**
     * 接收枚举类对象
     */
    public FeiYuException(ResultCodeEnum resultCodeEnum){
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
        this.msg=resultCodeEnum.getMessage();
    }
}
  1. 在异常的地方,手动添加异常
@ApiOperation("查询所有角色")
    @GetMapping("/findAll")
    public Result findAll(){
        try {
            int a = 10/0;
        }catch (Exception e){
            //抛出自定义异常
            throw new FeiYuException(20001,"执行了自定义异常");
        }
        List<SysRole> list = sysRoleService.list();
        return Result.success(list);
    }
  1. 添加执行方法
package com.feiyu.common.exception;

import com.feiyu.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: KeYu
 * @Package: com.feiyu.common.exception
 * @Date: 2023/05/17/9:05
 * @说明:统一异常处理
 */
@ControllerAdvice
public class GlobalExceptionHandler {
    //自定义异常
    @ExceptionHandler(FeiYuException.class)    //这里是要捕获的异常类FeiYuException(自定义异常类)
    @ResponseBody
    public Result error(FeiYuException e){
        e.printStackTrace();
        return Result.fail().code(e.getCode()).massage(e.getMessage());
    }
}

文章来源地址https://www.toymoban.com/news/detail-445446.html

到了这里,关于统一异常处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)

    目录 1. 用户登录权限校验 1.1 最初用户登录权限效验 1.2 Spring AOP 用户统⼀登录验证 1.3 Spring 拦截器 (1)创建自定义拦截器 (2)将自定义拦截器添加到系统配置中,并设置拦截的规则 1.4 练习:登录拦截器 (1)实现 UserController 实体类 (2)返回的登录页面:login.html (3)实

    2024年02月12日
    浏览(38)
  • SpringBoot统一异常处理和统一返回格式

    上篇博客我们讲解了使用AOP来进行统一的用户登录判断,其实像这种功能统一且使用较多的地方,都可以用AOP来处理,除了统⼀的⽤户登录判断之外,AOP 还可以实现: 统⼀⽇志记录 统⼀⽅法执⾏时间统计 (在性能优化阶段,监控流量,接口的响应时间等甚至每个方法的响应

    2024年02月15日
    浏览(27)
  • SpringBoot 全局异常统一处理:BindException(绑定异常)

    在Spring Boot应用中,数据绑定是一个至关重要的环节,它负责将HTTP请求中的参数映射到控制器方法的入参对象上。在这个过程中如果遇到问题,如参数缺失、类型不匹配或验证失败等,Spring MVC将会抛出一个 org.springframework.validation.BindException 异常。本文将深入解析 BindExceptio

    2024年01月18日
    浏览(31)
  • 统一异常处理

    Result为封装传递给前端的包装类 全局异常处理 特定异常处理 自定义异常处理 创建异常类,继承RuntimeException 在异常的地方,手动添加异常 添加执行方法

    2024年02月04日
    浏览(30)
  • springboot 统一异常处理 + 日志记录

          在项目的开发中,在某些情况下,比如非业务的操作,日志记录,权限认证和异常处理等。我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect。先简单介绍一下不同的拦截方式。 可以获得Http原始的请求和响应信息,

    2023年04月17日
    浏览(36)
  • springmvc统一异常处理拦截器

    使用@RestControllerAdvice+@ExceptionHandler实现 也可以使用@ControllerAdvice+@ResponseBody+@ExceptionHandler实现 创建一个异常处理的类,放在config包下  组件类:  也可以让不同的异常返回不同的结果,捕获什么异常由@ExceptionHandler的value属性决定,传入一个类对象(可以通过反射获得)  

    2024年02月15日
    浏览(35)
  • 异常统一处理:HttpRequestMethodNotSupportedException(Http请求方法不支持异常)

    本篇内容是“ 异常统一处理 ”系列文章的重要组成部分,主要聚焦于对 HttpRequestMethodNotSupportedException 的原理解析与异常处理机制,并给出测试案例。 关于 全局异常统一处理 的原理和完整实现逻辑,请参考文章: 《SpringBoot 全局异常统一处理(AOP):@RestControllerAdvice + @Ex

    2024年04月23日
    浏览(77)
  • springboot优雅的统一返回格式 + 全局异常处理(包括404等异常)

    目录 1.自定义枚举类 2.自定义统一返回格式类 3.统一返回格式的高级实现 4.全局异常处理 5.更优雅的全局异常处理 6.处理404错误 该枚举类为我们和前端约定好的返回状态码和描述信息,可根据自己的需求修改状态码和描述 @Data 注解为Lombok工具类库中的注解,提供类的get、s

    2024年02月11日
    浏览(33)
  • SpringBoot第14讲:SpringBoot 如何统一异常处理

    本文是SpringBoot第14讲,SpringBoot接口如何对异常进行统一封装,并统一返回呢?以上文的参数校验为例, 如何优雅的将参数校验的错误信息统一处理并封装返回呢

    2024年02月11日
    浏览(36)
  • SpringBoot -05 SpringBoot web相关配置(静态资源访问、统一异常处理、文件上传、拦截器、统一跨域请求处理)

    小总结 SpringBoot是一个基于Spring的工具集,去帮我们完成了大量的配置。在SpringBoot中有一个约定大于配置的概念,就是他把我们很多第三方框架帮我们写好了,而且把我们整个第三方框架所需要的依赖全都通过起步依赖加进去了。开发中只需要加入起步依赖就可以实现某个场

    2024年02月01日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包