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

后端项目开发:整合全局异常处理

新建exception目录,用来进行自定义的全局异常处理。

(1)新建自定义的GlobalException基 类继承RuntimeException类,我们自定义的异常类全部需要继承GlobalException基类进行处理。

这里我们直接利用之前定义的错误码接口类。

/*** 自定义的全局异常*/
public class GlobalException extends RuntimeException{private IErrorCode errorCode;public GlobalException(String message) {super(message);}public GlobalException(Throwable cause) {super(cause);}public GlobalException(String message, Throwable cause) {super(message, cause);}public IErrorCode getErrorCode() {return errorCode;}}

(2)在exception目录下,新建GlobalExceptionHandler类,拦截异常类。

在此类中可以捕获并将异常类转换为可接受的信息返回给前端,防止将异常直接抛出到前端。

/*** 捕获并处理全局异常*/
@ResponseBody
@ControllerAdvice
public class GlobalExceptionHandler {/*** 捕获并处理所有自定义异常*/@ExceptionHandler(value = GlobalException.class)public HttpResult handle(GlobalException e) {if (e.getErrorCode() != null) {return HttpResult.fail(e.getErrorCode());}return HttpResult.fail(e.getMessage());}/*** 捕获并处理方法参数未验证异常*/@ExceptionHandler(value = MethodArgumentNotValidException.class)public HttpResult handleValidException(MethodArgumentNotValidException e) {BindingResult bindingResult = e.getBindingResult();String message = null;if (bindingResult.hasErrors()) {FieldError fieldError = bindingResult.getFieldError();if (fieldError != null) {message = fieldError.getField()+fieldError.getDefaultMessage();}}return HttpResult.validateFailed(message);}/*** 捕获并处理绑定异常*/@ExceptionHandler(value = BindException.class)public HttpResult handleValidException(BindException e) {BindingResult bindingResult = e.getBindingResult();String message = null;if (bindingResult.hasErrors()) {FieldError fieldError = bindingResult.getFieldError();if (fieldError != null) {message = fieldError.getField()+fieldError.getDefaultMessage();}}return HttpResult.validateFailed(message);}
}
http://www.lryc.cn/news/139063.html

相关文章:

  • Linux socket网络编程概述 和 相关API讲解
  • uni-app封装省市区下拉组件(后台获取数据)
  • laravel中Mail发送邮件失败,但是没有错误信息,该如何调试?
  • 软考高级系统架构设计师系列论文八十五:论软件产品线技术
  • More Effective C++学习笔记(4)
  • 概率密度函数 累积分布函数
  • 基于OpenCV实战(基础知识二)
  • PhantomJS+java 后端生成echart图表的图片
  • vue3 基础知识 ( webpack 基础知识)05
  • 1.4亿X区智慧城市数字平台及城市大脑(运营中心)建设项目WORD
  • wps 画项目进度甘特图
  • 【⑭MySQL | 数据类型(二)】字符串 | 二进制类型
  • Java smslib包开发
  • 职业技术培训内容介绍
  • AUTOSAR规范与ECU软件开发(实践篇)6.2 ETAS RTA系列工具入门
  • vue3的hooks你可以了解一下
  • 面试之HTTP
  • 测试框架pytest教程(3)夹具-@pytest.fixture
  • GNU make系列之介绍Makefile
  • Java8新特性之——方法引用
  • 等保测评--安全区域边界--测评方法
  • 【Flutter】Flutter 使用 device_info_plus 获取设备的制造商、型号等信息
  • Flink、Yarn架构,以Flink on Yarn部署原理详解
  • 软考高级系统架构设计师系列论文八十三:论软件设计模式的应用
  • CDH集群离线配置python3环境,并安装pyhive、impyla、pyspark
  • python并行操作(基于concurrent.futures.ThreadPoolExecutor)
  • Leetcode.73矩阵置零
  • jdk 04 stream的collect方法
  • 介绍REST API
  • 【leetcode 力扣刷题】反转链表+递归求解