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

后端——全局异常处理

一、老办法try-catch

当我们执行一些错误操作导致程序报错时,程序会捕捉到异常报错,这个异常会存在一个Exception对象里

那我们在spring boot工程开发时,当我们执行一个sql查询时报错了,那就会从最底层的Mapper层捕捉到Exception异常,然后一路往Service、Controller传出去

那么学过java的应该知道,怎么才能捕捉到这个Exception异常并显示?就得用【try-catch】

那不是说你在mapper层写了一个【try-catch】、或者只在Controller写了【try-catch】就能返回出去Excrption异常对象的,肯定全都要写【try-catch】才能一路传上去,这太麻烦了

二、新办法:全局捕获异常

那我们可以设置一个【全局异常处理器】,来检测到所有异常,然后根据指定的要显示的异常类型来全局显示异常

写法很简单:

用法:

就是多加一个【exception】包,专门放捕获异常的类,然后创建一个捕获异常的类

代码:

package com.czm.tliaswebmanagement.exception;import com.czm.tliaswebmanagement.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;/*** 全局异常处理器*/
@RestControllerAdvice //标记这是一个全局异常捕获类
public class GlobalExceptionHandler {//指定不获的是什么异常类型,Exception.class就是全局异常类型@ExceptionHandler(Exception.class)public Result ex(Exception ex){ex.printStackTrace();return Result.error("操作失败,请联系管理员");}
}

因为比较简单,我就不详细解释了

http://www.lryc.cn/news/396092.html

相关文章:

  • 软件开发面试题(C#语言,.NET框架)
  • Spring学习04-[Spring容器核心技术AOP学习]
  • 第5章-组合序列类型
  • 大话光学原理:2.最短时间原理、“魔法石”与彩虹
  • spring tx @Transactional 详解 `Advisor`、`Target`、`ProxyFactory
  • `CyclicBarrier` 是 Java 中的一个同步辅助工具类,它允许一组线程相互等待,直到所有线程都达到了某个公共屏障点(barrier point)
  • 华为机试HJ108求最小公倍数
  • Debezium报错处理系列之第114篇:No TableMapEventData has been found for table id:256.
  • 开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
  • 二战架构师,拿下
  • 泛微开发修炼之旅--35关于基于页面扩展和自定义按钮实现与后端交互调用的方法
  • 原创作品—数据可视化大屏
  • AdaBoost集成学习算法理论解读以及公式为什么这么设计?
  • uniapp内置组件uni.navigateTo跳转后页面空白问题解决
  • 使用树莓派进行python开发,控制电机的参考资料
  • protobuf的使用
  • 笔记15:while语句编程练习
  • 打开excel时弹出stdole32.tlb
  • 349. 两个数组的交集
  • 重庆交通大学数学与统计学院携手泰迪智能科技共建的“智能工作室”
  • Pandas在生物信息学中的应用详解
  • ByteMD富文本编辑器的vue3配置
  • 基于antdesign封装一个react的上传组件
  • ARM裸机:一步步点亮LED(汇编)
  • 【单链表】05 有一个带头结点的单链表L,设计一个算法使其元素递增有序。
  • C语言入门基础题:奇偶 ASCII 值判断(C语言版)和ASCII码表,什么是ASCII码,它的特点和应用?
  • Numpy的广播机制(用于自动处理不同形状的数组)
  • 计算机图形学入门24:材质与外观
  • FTP、http 、tcp
  • 【虚幻引擎】UE4初学者系列教程开发进阶实战篇——生存游戏案例