SpringBoot怎么进行统一异常处理
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"SpringBoot怎么进行统一异常处理"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot怎么进行统一异常处理"文章能帮助大
千家信息网最后更新 2025年01月18日SpringBoot怎么进行统一异常处理
这篇文章主要介绍"SpringBoot怎么进行统一异常处理"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot怎么进行统一异常处理"文章能帮助大家解决问题。
1、处理前
异常代码
/** * 根据id获取医院设置 * * @param id 查看的id编号 * @return */@ApiOperation(value = "根据id获取医院设置")@GetMapping("/findHospById/{id}")public Result findHospById(@PathVariable Long id) { // 模拟异常(因为除数不能为0) int a = 1 / 0; HospitalSet hospitalSet = hospitalSetService.getById(id); return Result.ok(hospitalSet);}
Swagger2输出结果
2、进行系统异常全局处理
添加全局异常处理类
代码
package com.fafa.yygh.common.exception;import com.fafa.yygh.common.result.Result;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;/** * 全局异常处理 * * @author Sire * @version 1.0 * @date 2022-02-02 21:01 */@ControllerAdvicepublic class GlobalExceptionHandler { /** * 系统异常处理 * * @param e * @return */ @ExceptionHandler(Exception.class) @ResponseBody public Result error(Exception e) { e.printStackTrace(); return Result.fail(); }}
Swagger2结果
3、进行自定义异常处理
开发时,往往需要我们去定义处理一些异常(这里还是那上面的那个异常来做测试)
创建自定义异常处理类
package com.fafa.yygh.common.exception;import com.fafa.yygh.common.result.ResultCodeEnum;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;/** * 自定义全局异常类 * * @author qy */@Data@ApiModel(value = "自定义全局异常类")public class YyghException extends RuntimeException { @ApiModelProperty(value = "异常状态码") private Integer code; /** * 通过状态码和错误消息创建异常对象 * * @param message * @param code */ public YyghException(String message, Integer code) { super(message); this.code = code; } /** * 接收枚举类型对象 * * @param resultCodeEnum */ public YyghException(ResultCodeEnum resultCodeEnum) { super(resultCodeEnum.getMessage()); this.code = resultCodeEnum.getCode(); } @Override public String toString() { return "YyghException{" + "code=" + code + ", message=" + this.getMessage() + '}'; }}
将其添加到GlobalExceptionHandler
/** * 自定义异常处理 * * @param e * @return */@ExceptionHandler(YyghException.class)@ResponseBodypublic Result divError(YyghException e) { return Result.build(e.getCode(), e.getMessage());}
需要手动 try catch 一下
效果
swagger和系统异常处理一样
不过后台输出不一样
关于"SpringBoot怎么进行统一异常处理"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
处理
全局
统一
知识
系统
代码
医院
对象
状态
结果
行业
输出
不同
实用
内容
后台
实用性
实际
手动
效果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吕梁dns服务器地址
为什么网络安全防范这么重要
模拟经验服务器的游戏
oa系统找不到服务器
web访问本地数据库
网络安全快板儿
为什么吃鸡端游服务器错误
玉树软件开发解决方案
c语言用文件存储数据库
天津职业大学网络技术与信息处理
减半后btc网络安全吗
远程服务器权限设置
华为 服务器业务 售价
A 软件开发开台
软件开发公司介绍 大数据库
搭建ftp服务器的软件
手机软件开发公司联系方式
当前常用的两大数据库搜索工具
大数据数据采集用什么数据库
amd服务器显卡
数据库怎样建
fx8300 服务器
条形码怎么查询数据库
灌云智能网络技术诚信经营
广东软件开发上市公司
教务系统数据库除了表还有啥
奥德采集软件开发
服务器配置安全策略
台山网络安全找哪家
驻厂软件开发外包应该注意些什么