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

【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("出错了,请联系管理员!");}
}
http://www.lryc.cn/news/500280.html

相关文章:

  • PT8M2102 触控型 8Bit MCU
  • 4. React 性能优化技巧:如何让你的应用更快
  • pytest中使用conftest做测试前置和参数化
  • Spring Boot 中使用 @Transactional 注解配置事务管理
  • MATLAB 建筑顶面面积计算(95)
  • Linux网络编程之---组播和广播
  • Apache Dolphinscheduler可视化 DAG 工作流任务调度系统
  • docker 部署共享文档ZFile
  • 面试题之JVM
  • 二叉树的深搜(不定期更新。。。。。)
  • WebLLM Chat:无服务器、私密的AI聊天体验
  • C#中的模拟服务器与客户端建立连接
  • 【深度学习】利用Java DL4J 构建和训练医疗影像分析模型
  • application.yml 和 bootstrap.yml
  • 使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示
  • ubuntu22.04 使用可以用的镜像源获取你要的镜像
  • Flume——sink连接hdfs的参数配置(属性参数+时间参数)
  • python+docker实现分布式存储的demo
  • go-blueprint create exit status 1
  • 如何更改Git用户名 - 本地与全局设置指南
  • Node.js JWT认证教程
  • 【青牛科技】应用于音频信号处理系统的D258 是由两个独立的高增益运算放大器组成
  • HTML Input 文件上传功能全解析:从基础到优化
  • 小程序 —— Day1
  • 4.5 TCP 报文段的首部格式
  • SQL 获取今天的当月开始结束范围:
  • Qt复习学习
  • Leetcode经典题5--轮转数组
  • C++的一些经典算法
  • Windows环境中Python脚本开机自启动及其监控自启动