Springboot处理异常的常见方式

 更新时间:2021年06月03日 09:47:18   作者:嘉geng  
SpringBoot框架异常处理有多种处理方式,今天就带大家了解一下常见的springboot异常处理方式,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

一、制造异常

在这里插入图片描述

报500错误。在大量的代码中很难找到错误

在这里插入图片描述

二、统一异常处理

添加异常处理方法

GlobalExceptionHandler.java中添加

//指定出现什么异常执行这个方法
    @ExceptionHandler(Exception.class)
    @ResponseBody //为了返回数据
    public R error(Exception e) {
        e.printStackTrace();
        return R.error().message("执行了全局异常处理..");
    }

报错异常:在大型项目中,可对多种异常进行处理,便于找bug

在这里插入图片描述

三、特殊异常处理

定义异常,特别处理ArithmeticException异常

在这里插入图片描述

在这里插入图片描述

//特定异常处理
    @ExceptionHandler(ArithmeticException.class)
    @ResponseBody//为了返回数据
    public R error(ArithmeticException e){
        e.printStackTrace();
        return R.error().message("执行了ArithmeticException异常处理");
    }

异常处理结果:

在这里插入图片描述

四、自定义异常处理

第一步:创建自定义处理类的实体类:

@Data
@AllArgsConstructor//生成有参构造方法
@NoArgsConstructor//生成无参构造方法
public class MyException extends RuntimeException{
    private Integer code;
    private String msg;
}

第二步:在统一异常类中添加规则:

//自定义异常处理
    @ExceptionHandler(MyException.class)
    @ResponseBody//返回数据
    public R error(MyException e){
        e.printStackTrace();
        return R.error().code(e.getCode()).message(e.getMsg());//封装自定义异常信息
    }

第三步:执行自定义异常

try{
           int i=10/0;
       }catch (Exception e){
           throw new MyException(20001,"执行自定义异常处理");
       }

在这里插入图片描述

以上使用的R类,用于封装json数据的格式:

@Data
public class R {
    @ApiModelProperty(value = "是否成功")
    private Boolean success;
    @ApiModelProperty(value = "返回码")
    private Integer code;
    @ApiModelProperty(value = "返回消息")
    private String message;
    @ApiModelProperty(value = "返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();
    private R(){}
    public static R ok(){
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }
    public static R error(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }
    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    }
    public R message(String message){
        this.setMessage(message);
        return this;
    }
    public R code(Integer code){
        this.setCode(code);
        return this;
    }
    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }
    public R data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

public interface ResultCode {
    public static Integer SUCCESS = 20000;
    public static Integer ERROR = 20001;
}

到此这篇关于Springboot处理异常的常见方式的文章就介绍到这了,更多相关springboot异常处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot整合Security权限控制登录首页

    SpringBoot整合Security权限控制登录首页

    这篇文章主要为大家介绍了SpringBoot整合Security权限控制登录首页示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java switch使用原理及实例解析

    Java switch使用原理及实例解析

    这篇文章主要介绍了Java switch使用及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • java中staticclass静态类详解

    java中staticclass静态类详解

    这篇文章主要介绍了java中staticclass静态类详解,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • 浅谈多线程中的锁的几种用法总结(必看)

    浅谈多线程中的锁的几种用法总结(必看)

    下面小编就为大家带来一篇浅谈多线程中的锁的几种用法总结(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • springboot+idea热部署的实现方法(自动刷新)

    springboot+idea热部署的实现方法(自动刷新)

    这篇文章主要介绍了springboot+idea热部署的实现方法(自动刷新),本文分步骤通过实例代码截图相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • spring中使用@Autowired注解无法注入的情况及解决

    spring中使用@Autowired注解无法注入的情况及解决

    这篇文章主要介绍了spring中使用@Autowired注解无法注入的情况及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java爬虫 信息抓取的实现

    Java爬虫 信息抓取的实现

    本文主要介绍 Java爬虫 信息抓取的实现,这里详细介绍了如何实现该方法,并附示例代码供大家学习参考,有兴趣的小伙伴可以参考下
    2016-09-09
  • Java模拟实现斗地主的洗牌和发牌

    Java模拟实现斗地主的洗牌和发牌

    这篇文章主要为大家详细介绍了Java模拟实现斗地主的洗牌和发牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 几道常问Redis面试题,你能答对吗?

    几道常问Redis面试题,你能答对吗?

    在程序员面试过程中redis相关的知识是常被问到的话题。这篇文章主要介绍了13道Redis面试题,整理一下分享给大家,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Maven profile实现不同环境的配置管理实践

    Maven profile实现不同环境的配置管理实践

    这篇文章主要介绍了Maven profile实现不同环境的配置管理实践,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09

最新评论