SpringBoot全局异常处理
创始人
2025-05-28 23:55:16
0

一、目的

        当客户端/前端向服务端发送一个请求后,这个请求并不是每次都能完全正确的处理,比如出现一些资源不存在、参数错误或者内部错误等信息的时候,就需要将异常反馈给客户端或者前端。那么这就需要程序有完整的异常处理机制。

        在 Java 中所有异常的基类都是 Throwable 延伸出来,但通常不使用 Throwable,在该基类延伸出来 Error 和 Exception 两种异常,严格意义上讲 Error 不属于异常,而是错误,Exception 才是异常,两者有什么区别呢?

        错误:所谓错误就是应用发生错误的是就启动不起来,一般都是操作系统或者是 JVM 级别上发生的错误,一旦发生错误,我们是无法通过代码来进行处理的;

       异常: Exception 一般是我们可以通过代码来进行处理的,例如我们平时查询数据库没有找到某一条记录,就是一个典型的空异常,再比如我们进行计算的时候,分母为 0, 也会报一个异常。

       Error 在平常工作我们是不需要处理,重点就是 Exception,Exception 又分为两种,一种是 CheckedException 异常,另一种是 RuntimeException 异常;这两个异常的区别是 CheckedException 要求必须在代码中进行处理,如果不处理,程序连编译都无法通过;RuntimeException不要求强制进行处理,因为这个异常属于运行的异常,不一定在编译阶段就能发现。

二、实现

        SpringBoot中,@ControllerAdvice 即可开启全局异常处理,使用该注解表示开启了全局异常的捕获,我们只需在自定义一个方法使用@ExceptionHandler注解然后定义捕获异常的类型即可对这些捕获的异常进行统一的处理。

一、定义一个全局异常处理类


@RestControllerAdvice
public class GlobalExceptionAdvice {// 处理已知异常(自定义异常)@ExceptionHandler(NepException.class)public ResponseEntity handleNepException(NepException e) {return new ResponseEntity(400, "空指针异常" + e.getMessage(), "");}// 未知异常@ExceptionHandler(Exception.class)public ResponseEntity handleException(Exception e) {return new ResponseEntity(400, "未知异常" + e.getMessage(), "");}}

二、返回体

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseEntity {private Integer code;private String message;private Object data;
}

3、全局运行时异常拦截


@GetMapping("/aa")
public ResponseEntity aa(){double a = 1/0;return new ResponseEntity(200,"请求成功","");
}@GetMapping("bb")
public ResponseEntity bb(){ResponseEntity responseEntity = null;try {responseEntity.getCode();}catch (NullPointerException nullPointerException){throw new NepException();}return new ResponseEntity(200,"请求成功","");
}

四、自定义异常类

public class NepException extends NullPointerException{}

五、全局异常返回

四、总结

整个流程就是全局异常拦截,当然不止这一行几行代码,很多地方都可以根据我们自身实际业务情况以此为基础进一步丰富,比如返回数据可以改成跳转某一个具体的页面。这样的出场方式是不是都很优雅。总的来说,我们可以根据自身业务和实际需求对异常进行全局处理。

相关内容

热门资讯

固定资产处置业务中的涉税处理... 固定资产处置业务中的涉税处理论文  固定资产处置是指企业的固定资产退出现有正常工作状态。固定资产退出...
地理论文参考 地理论文参考范文  导语:地理学是研究地球表面的地理环境中各种自然现象和人文现象,以及它们之间相互关...
参考文献字体格式要求   参考文献是在学术研究过程中,对某一著作或论文的整体的参考或借鉴。下面,小编为大家分享参考文献字体...
圣诞派对活动方案 圣诞派对活动方案(精选15篇)  为了确保活动有序有力开展,常常需要提前制定一份优秀的活动方案,活动...
如何做好可控震源的质量监控 如何做好可控震源的质量监控在可控震源施工中,必须对每一振次进行实时监控,对震源技术指标进行全程监控,...
图书馆世界读书日活动方案 图书馆2021年世界读书日活动方案(精选5篇)  为了确保活动有序有力开展,常常需要预先准备活动方案...
五四青年晚会活动方案 五四青年晚会活动方案(精选14篇)  为了确保活动有效开展,我们需要事先制定活动方案,活动方案指的是...
运动会开幕式入场方案 运动会开幕式入场方案  什么是工作方案?  工作方案是对未来要做的重要工作做了最佳安排,并具有较强的...
三八女神节活动策划方案 三八女神节活动策划方案(精选14篇)  为了确保活动能无误进行,通常需要预先制定一份完整的活动方案,...
饭店酒水促销活动方案 饭店酒水促销活动方案  为了确保活动能有条不紊地开展,预先制定活动方案是必不可少的,活动方案是活动的...
新年跨年活动方案   一、活动介绍  (一)活动流程介绍  (二)晚会特色  1.晚会幕布:  2.晚会入场:  3....
开放日活动方案 开放日活动方案(精选18篇)  为确保活动高质量高水平开展,预先制定活动方案是必不可少的,活动方案的...
教师读书活动方案 教师读书活动方案(通用17篇)  为确保事情或工作顺利开展,就常常需要事先准备方案,方案指的是为某一...
酒店圣诞节活动方案 酒店圣诞节活动方案7篇  为了确保工作或事情能有条不紊地开展,通常需要提前准备好一份方案,方案是为某...
五一劳动主题活动方案 五一劳动主题活动方案(精选19篇)  为了确保工作或事情能有条不紊地开展,我们需要事先制定方案,方案...
送教下乡活动方案 送教下乡活动方案  为了确保事情或工作能无误进行,常常需要提前准备一份具体、详细、针对性强的方案,方...
新时代文明实践活动实施方案 新时代文明实践活动实施方案(精选7篇)  为了确保活动顺利进行,常常需要提前进行细致的活动方案准备工...
营销活动方案 营销活动方案模板(精选17篇)  为保证事情或工作高起点、高质量、高水平开展,常常需要提前进行细致的...
幼儿园开学活动方案 幼儿园开学活动方案(精选20篇)  为了确保事情或工作有序有效开展,往往需要预先制定好方案,方案是书...
庆祝元旦活动方案 庆祝元旦活动方案(15篇)  为了确保事情或工作有序有力开展,我们需要事先制定方案,方案一般包括指导...