【Java】自定义异常类

news/2024/10/30 9:31:53/

前言

在这篇文章我给大家演示一下自定义异常类的编写,在业务编写时可以返回我们的自定义异常信息状态码
模拟场景:

  • 如果参数为null或者为空则抛出我们自定义的异常。

案例

首先创建一个CustomException类,并继承RuntimeException

public class CustomException extends RuntimeException {private final String msg;private final int code;public CustomException() {super();}public CustomException(int code, String message) {super(message);this.code = code;this.msg = message;}public CustomException(String message) {super(message);this.msg = message;}public int getCode() {return code;}public String getMessage() {return msg;}
}

然后我们创建一个全局异常处理类GlobalExceptionHandler,在里面处理我们抛出的异常处理。(可自定义异常处理)

这里返回的DataResult是封装的结果集,可以去这个链接查看里面对应的内容:统一结果集

@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(CustomException.class)public DataResult businessException(CustomException customException) {return DataResult.error(customException.getcode(), customException.getMessage())}
}

在这里将我们的异常信息和状态码进行封装返回。

测试

我这里使用接口测试,大家也可以在测试类中进行测试。这个方法用于判断参数,在接口中调用此方法并且传入参数进行校验。

private void judgeParam(String param) {if (param == null || "".equals(param){throw new CustomException("缺少参数【param】");}
}

如果校验通过则处理以下代码,否则返回异常给前端

@RequestMapping("test")
public DataResult test(String param){judgeParam(param);...//代码
}

测试结果

请求参数

{param: ''
}

请求结果

{code: -1,msg: '缺少参数【param】'
}

http://www.ppmy.cn/news/513162.html

相关文章

pro缺点和不足 一加7t_一加7T与OPPO Reno Ace 各有优势与缺点

半年,安卓机皇一加 7pro 抢足了风头,那么作为一加手机迭代产品,一加 7T 相比一加 7 来说提升不小。 凭借 65W SuperVOOC 2.0 超级闪充这一强力卖点,以及一系列确实堪称“王牌”的配置,OPPO Reno Ace 可以说一跃成为 10…

rio

终于是把rio的blog看完了.. 把其中我觉得.有价值和有意义的东西摘了下来(rio不要生气哟..) 他.是个很有思想的人. 祝.一路走好.. 希望.有机会.还可以再见l.. :) 谢谢你.跟我说的每一句话.很感谢. 但整个过程的关键是单词。新年后开始背单词,背…

3ds MAX绘制花坛

绘制一个八边形花坛: 首先绘制一个八边形,并将它转换为可编辑样条线: 在前视图中绘制一个长方形,参数如图,可以按照喜好变换弧度等 注意,长方形的宽要和八边形的边长对应。 接下来我们通过旋转创建完整的…

C语言volatile类型限定符

个人博客链接 volatile 在嵌入式系统中,部分内存空间可能是 易变的 (volatile),保存在这种内存空间中的值可能在程序运行期间发生改变,即使程序本身并没有修改这些值。比如说,外设的一些寄存器会映射到内存空间(即统…

android 权限管理适配 oppo,ColorOS 正式适配 Android 10,OPPO Reno 全网通用户已

2019 年 9 月 3 日,Android 10 正式版发布。近期在国内拥有极高市场占有率的 ColorOS 正式宣布开启 Android 10 万人公测尝鲜,并将率先在 OPPO Reno 全网通上推送基于 Android 10 开发的 ColorOS 。现在就让我们一起来看看基于 Android 10 开发的 ColorO…

渐变色【R Color】

文章目录 前言创建两个颜色之间的 Color Range例子:创建蓝色->红色之间的 Color Range 创建一组渐变的调色板使用画一下 “1 uM treatments”用自定义的渐变色再来一个拼图的 前言 不想干正事儿,搞搞 “ 颜色 ”😑 创建两个颜色之间的 C…

oppor17android版本,OPPOR17ColorOS系统怎么样

近两年来,的全面屏设计不是美人尖就是刘海屏,这两种设计虽然可以扩大屏占比,但是缺少设计的美感。 这时候,OPPO R17终于为我们带来了即有较高的屏占比又优雅的全面屏设计——水滴屏,让摄像头向水滴一样“垂涎欲滴”&am…

ArUco

文章目录 一、ArUco简介二、Marker和字典三、步骤1.创建Marker(Marker Creation)2.检测Marker(Marker Detection)3.姿态估计(Pose Estimation) 一、ArUco简介 姿态估计(Pose estimation&#xf…