什么是统一异常处理

我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要统一异

常处理

(一)全局异常处理

在service-base中创建exceptionhandler包,包下创建统一异常处理类GlobalExceptionHandler

package com.nanjing.servicebase.exceptionhandler;import com.nanjing.commonutils.R;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;/*** @author yimo* @version 1.0* @date 2022/3/20 18:51*/
@ControllerAdvice
public class GlobalExceptionHandler {//指定出现什么异常执行这个方法@ExceptionHandler(Exception.class)@ResponseBody    //为了返回数据public R error(Exception e){e.printStackTrace();return R.error().message("执行了全局的异常类...");}}

根据依赖传递

swagger测试

制造异常

控制台


(二)特定异常处理

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

swagger测试


(三)自定义异常处理

创建自定义异常类GuliException,注意要继承RuntimeException

package com.nanjing.servicebase.exceptionhandler;import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** @author yimo* @version 1.0* @date 2022/3/20 20:47*/
@Data
@AllArgsConstructor //生成有参构造
@NoArgsConstructor  //生成无参构造
public class GuliException extends RuntimeException{@ApiModelProperty(value = "状态码")private Integer code;private String msg;//异常信息}

在统一异常类中添加规则

//自定义异常
@ExceptionHandler(GuliException.class)
@ResponseBody//为了返回数据
public R error(GuliException e){e.printStackTrace();return R.error().message(e.getMsg()).code(e.getCode());
}

业务中需要的位置抛出GuliException

swagger测试

谷粒学院-统一异常处理(全局异常处理、特定异常处理、自定义异常处理)相关推荐

  1. 微信小程序后端注意点 | https配置 | 全局、特定、自定义异常处理 | 多module打包上传服务器测试

    因为本次需求的最终目的是做一个微信小程序,所以先提前了解一下 看了下微信小程序的官网,基本的开发都是前端开发,因为本次开发中我负责的是后端 暂时不深入了解,但是有一个是后端需要注意的,就是微信小程序只 ...

  2. 谷粒学院-统一结果返回

    统一返回数据格式 项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(IOS Android, Web)对数据的操作更一致.轻松. 一般情况下,统一返回数据格式没有固定 ...

  3. 玩转springboot:自定义异常处理和深入异常处理原理

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  4. 捕获异常_SpringBoot的异常处理全局异常捕获(图文资料)

    目标:springboot全局异常捕获 概述 1.自定义异常处理 package com.itheima.exeception; /** * @Author David老师 * @Descriptio ...

  5. RestControllerAdvice作用及原理---自定义异常处理(全局异常处理)

    前言 一直想开发一个功能比较强大的项目,但是一直没有动手,最近终于有点时间来折腾它了.由于时隔两年没有接触前端了,所以需要一个小项目先练练手感.等这个项目完工之后在着手搞一个大工程.都说好记星不如烂笔 ...

  6. Spring Security 实战干货:自定义异常处理

    Spring Security 实战干货:自定义异常处理 转自:https://www.cnblogs.com/felordcn/p/12142514.html 文章目录 1. 前言 2. Sprin ...

  7. 【项目相关技术】:父工程的创建、gitee和IDEA使用、面向接口编程、swagger2测试、自定义异常处理、日志、VO/PO、XXMapping、TODO

    父工程的创建:在pom文件中设置< packaging>pom< /packaging>. gitee使用 sda ①.创建仓库并获得仓库地址: sda ②.结合IDEA提交上 ...

  8. Web框架——Flask系列之abort函数与自定义异常处理(十三)

    一.abort函数 使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息 传递状态码信息,必须是标准的http状态码 abort(403) 传递响应体信息 resp = Respo ...

  9. Springboot2 自定义异常处理

    开发过程中由于出现异常时想要返返回指定类型的json串,springboot自带的异常处理无法满足需求,自己封装异常处理类进行指定的异常处理. import java.util.HashMap; im ...

最新文章

  1. APDPlat的系统启动和关闭流程剖析
  2. linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法
  3. 友盟页面访问路径全量统计功能上线啦!
  4. 关于DELL服务器如果采购散件,进行服务器升级的相关说明
  5. 设计师不用下课了吧?小米突然官宣性价比之王旗舰:升降式摄像头
  6. 操作系统知识点大总结【进线程管理与调度】
  7. java成神之——集合框架之ArrayList,Lists,Sets
  8. 20200708每日一句
  9. 高德地图No implementation found for long com.autonavi.amap.mapcore.MapCore
  10. 一、网络安全专有名词汇编详解(黑话指南)-史上最全
  11. Vue项目实战篇一:实现一个完整的留言板(带前后端源码下载)
  12. ae去闪插件deflicker使用_夜晚视频灯光去闪烁 Deflicker插件
  13. 快手加抖音自动刷视频脚本,引用的是python+易语言编程
  14. 《Walden》单词词频统计
  15. python自动生成加减法算术题
  16. MATLAB绘制图中图
  17. php empty 和空字符串区别
  18. 单片机——LCD1602
  19. Mencoder转换视频
  20. PIE SDK水体指数法

热门文章

  1. firebird修复_Firebird数据修复
  2. 【GIF屏幕录制工具介绍】LICEcap
  3. TeamViewer远程访问和控制功能现已支持所有安卓设备
  4. 本地环境wordpress修改php.ini,wordpress修改php.ini的方法
  5. 行业深度AMA |PERI Finance:去中心化金融(DeFi)与合成资产
  6. LVS负载均衡群集(一):NET模式群集部署
  7. golang的goroutine调度机制
  8. 自然语言处理相关数据和参考整理
  9. glass安装_借助开放源代码,Google Glass得以快速发展
  10. 给小吴:从实践下手去学编程