当前位置: 首页 > article >正文

【JavaWeb后端学习笔记】Spring全局异常处理器

在程序运行时,不可避免的会出现异常。在三层开发架构中,当Mapper层出现异常、如果不进行处理会抛给Service层,如果Service层也不处理则会抛给Controller层,通常Controller层有许多接口,如果对每个接口单独处理异常,则代码会非常臃肿和繁琐。

在处理异常时,相同类型的异常处理方式相似,因此可以将相同的异常归类,使用一样的处理逻辑处理这类异常。

这样一来可以定义一个全局异常处理器,当Controller层、Service层、Mapper层都不对异常进行处理时,框架会把异常抛给全局异常处理器进行处理。在全局异常处理器中,可以定义多个异常处理方法,每个方法可以针对不同类型的异常进行处理。

自定义全局异常处理器分3步:

  1. 定义一个类,在类上加@RestControllerAdvice注解,声明这是一个全局异常处理器。
  2. 在类中定义一个全局异常处理方法。方法上加@ExceptionHandler注解定义异常处理方法,注解中需要指定该方法处理的异常类型的字节码文件,也就是类名.class。在方法形参中传入该类异常对象。方法返回值推荐统一使用Resful开发风格,返回一个Result对象,方便前端处理。
  3. 处理异常。在方法中可以打印出错误堆栈信息,编写异常处理代码。返回Result.error(“自定义错误提示信息…”)对象。
@RestControllerAdvice // 声明全局异常处理器类
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class) // 指定捕获的异常类型,这里捕获所有异常
    public Result<String> ex(Exception ex) {
        // 异常处理逻辑...
        ex.printStackTrace();
        return Result.error("出错了,请联系管理员!");
    }
}
原文地址:https://blog.csdn.net/wrjwww/article/details/144325472
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/428084.html

相关文章:

  • 【论文笔记】Compact Language Models via Pruning and Knowledge Distillation
  • R155 VTA 认证对汽车入侵检测系统(IDS)合规要求
  • World of Warcraft (version update)
  • 蓝牙键鼠无法被电脑识别
  • 雨晨 2610(2)0.2510 Windows 11 24H2 Iot 企业版 LTSC 2024 极简 2in1
  • NOIP2011 普及组【瑞士轮】题解(AC)
  • vue2+html2canvas+js PDF实现试卷导出和打印功能
  • 解决Ubuntu在VMware关机时,老是一个光标在那里闪动几分钟,才能关机的问题
  • Docker 学习总结(84)—— Docker 常用运维命令
  • axios的get和post请求,关于携带参数相关的讲解一下
  • [0629].第29节:配置中心业务规则与动态刷新
  • 运维角度定位JAVA微服务线上CPU飙升问题
  • iOS如何操作更新推送证书
  • 基于单片机的智能客车超载监测综合性实验
  • Ubuntu 环境美化
  • 人机之间的交互存在不少逻辑性的跳跃
  • Hadoop3集群实战:从零开始的搭建之旅
  • 常用的8款电脑加密软件分享|2025电脑办公文件怎么加密?
  • 高通Camera点亮1——Camera相关的DTS配置
  • 每日计划-1207