全局异常处理
案例一:
自定义异常
public class StudentException extends RuntimeException {private Integer code;private String msg;public StudentException(Integer code, String msg) {this.code = code;this.msg = msg;}/*** 这里需要重写 getMessage方法,否则会报控指针错误* getMessage:输出异常类的报错信息** @return*/@Overridepublic String getMessage() {return this.getMsg();}public String getMsg() {return msg;}public Integer getCode() {return code;}
}
异常信息类枚举类
指定错误规则,方便区分错误信息。
public enum ExecptionStatusEnum {STUDENT_ERROR_EXECPTION(01, "学号错误"), STUDENT_UNORDER_EXECPTION(02, "学号不存在");private Integer code;private String msg;ExecptionStatusEnum(Integer code, String msg) {this.code = code;this.msg = msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}
}
全局异常处理
自定义返回类
public class Result extends HashMap<String, Object> {/*** 状态码*/public static final String CODE_TAG = "code";/*** 返回内容*/public static final String MSG_TAG = "msg";/*** 数据对象*/public static final String DATA_TAG = "data";public Result() {}public Result(Integer code, String msg, Object data) {super.put(CODE_TAG, code);super.put(MSG_TAG, msg);if (data != null) {super.put(DATA_TAG, data);}}public static Result ok() {return Result.ok(200, "操作成功");}public static Result ok(Integer code, String msg) {return new Result(code, msg, null);}public static Result error() {return Result.ok(500, "系统错误");}public static Result error(Integer code, String msg) {return new Result(code, msg, null);}public static Result ok(Object data) {return new Result(200, "操作成功", data);}
}
全局异常处理类
@RestControllerAdvice
public class GlobalExceptionHandler {/*** 自定义异常类*/@ExceptionHandler(StudentException.class)public Result handleStudentException(StudentException e) {return Result.error(e.getCode(), e.getMsg());}/*** 其他异常*/@ExceptionHandler(Exception.class)public Result handleException(Exception e) {return Result.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());}}
Controller层
@RestController
public class StudentController {@GetMapping("/student/{id}")public Result test(@PathVariable("id") Long id) {if (id == 1) {// 抛出异常:学生错误throw new StudentException(StudentExecptionStatusEnum.STUDENT_ERROR_EXECPTION.getCode(),StudentExecptionStatusEnum.STUDENT_ERROR_EXECPTION.getMsg());} else if (id == 2) {// 抛出异常:学生不存在throw new StudentException(StudentExecptionStatusEnum.STUDENT_UNORDER_EXECPTION.getCode(),StudentExecptionStatusEnum.STUDENT_ERROR_EXECPTION.getMsg());}// 返回 学生信息return Result.ok(new Student(4, "zqsl1234"));}
}
案例二:
自定义异常类
public class MyException extends RuntimeException{public MyException(){super();}public MyException(String message){super(message);}public MyException(Throwable cause){super(cause);}public MyException(String message,Throwable cause){super(message,cause);}
}
全局异常处理类
@RestControllerAdvice
public class GlobalExceptionHandler {/*** 自定义异常类*/@ExceptionHandler(MyException.class)public ResponseEntity<String> handleMyException(MyException e) {return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);}/*** 其他异常*/@ExceptionHandler(Exception.class)public Result handleException(Exception e) {return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);}}
测试
public class Test {public void test(){throw new MyException("我是自定义报错信息");}public static void main(String[] args){Test test = new Test();test.test();}
}
相关文章:
全局异常处理
案例一: 自定义异常 public class StudentException extends RuntimeException {private Integer code;private String msg;public StudentException(Integer code, String msg) {this.code code;this.msg msg;}/*** 这里需要重写 getMessage方法,否…...
更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验
低价又好用的护眼台灯是多数人的需求,很多人只追求功能性护眼台灯,显色高、无频闪、无蓝光等基础需求。但是在较低价格中很难面面俱到,然而刚发布的SUKER书客L1护眼台灯却是一款不可多得的性价比护眼台灯,拥有高品质光源ÿ…...
Locked勒索病毒:最新变种.locked袭击了您的计算机?
导言: 在今天的数字时代,勒索病毒已经不再是仅仅让数据变得不可访问的小威胁。 .locked 勒索病毒,作为其中的一种,以其高度复杂的加密算法和迅速变化的攻击手法而备受恶意分子喜爱。本文91数据恢复将带您深入了解 .locked 勒索病毒…...
随机森林算法
介绍 随机森林是一种基于集成学习的有监督机器学习算法。随机森林是包含多个决策树的分类器,一般输出的类别是由决策树的众数决定。随机森林也可以用于常见的回归拟合。随机森林主要是运用了两种思想。具体如下所示。 Breimans的Bootstrap aggregatingHo的random …...
如何将国标规范用EndNote插入到英文期刊中,自定义文献插入指南
EndNote自定义文献 1.插入国标JTG 2034-2020这种新建一个StandardReference填入信息参考 插入英文期刊规范ASTM 1.插入国标JTG 2034-2020这种 首先找到大家要投稿的英文期刊,然后去找那些中…...
重写 UGUI
重写Button using UnityEngine; using UnityEngine.UI; public class MyButton : Button {[SerializeField] private int _newNumber; }using UnityEditor;//编辑器类在UnityEditor命名空间下。所以当使用C#脚本时,你需要在脚本前面加上 "using UnityEditor&q…...
合宙Air724UG LuatOS-Air LVGL API控件--容器 (Container)
容器 (Container) 容器是 lvgl 相当重要的一个控件了,可以设置布局,容器的大小也会自动进行调整,利用容器可以创建出自适应成都很高的界面布局。 代码示例 – 创建容器 cont lvgl.cont_create(lvgl.scr_act(), nil) lvgl.obj_set_auto_re…...
代码随想录训练营第41天|343.整数拆分,96.不同的二叉搜索树
代码随想录训练营第41天|343.整数拆分,96.不同的二叉搜索树 343.整数拆分文章思路代码 96.不同的二叉搜索树文章思路代码 总结 343.整数拆分 文章 代码随想录|0343.整数拆分 思路 二刷不难 d p [ i ] M a x j ( m a x ( j 1 , d p [ j ] ) ∗ ( i − j ) ) \…...
高防服务器与云防产品都适用哪些情况
高防服务器与云防护产品(如高防IP,高防CDN)都可以对DDOS、CC等攻击进行防护,在现如今的互联网市场上,不法分子经常会通过DDOS、CC等攻击服务器,干扰业务正常运行,以此来获得利益。 高防服务器是…...
【广州华锐互动】AR远程连接专家进行协同管理,解放双手让协同更便捷
AR远程协同系统是一种基于AR技术,实现远程设备维修和技术支持的系统。该系统通过将虚拟信息叠加在现实世界中,实现对设备的全方位监控和管理,并可以通过AR眼镜等终端设备,实时查看设备的各项数据和信息,为设备维修提供…...
PNG图片压缩原理
png??png的图片我们每天都在用,可是png到底是什么,它的压缩原理是什么? 很好,接下来我将会给大家一一阐述。 什么是PNG PNG的全称叫便携式网络图型(Portable Network Graphics)是…...
[ Linux Audio 篇 ] Linux Audio 子系统资料集锦
Linux Audio 子系统资料 背景OSS VS ALSAALSA 驱动ALSA libALSA Plugin音频延迟音频调试音频书籍 背景 最近需要准备Linux Audio 相关的PPT,于是将以往的知识点和遇到的问题进行整理和梳理,以便向大家讲解。同时,还整理了在这个过程中发现的…...
VR全景对行业发展有什么帮助?VR全景制作需要注意什么?
引言: 虚拟现实(Virtual Reality,简称VR)早已不再是科幻电影的概念,而是在以惊人的速度改变着我们的世界。VR全景,作为其中的重要组成部分,正为多个行业带来了全新的机遇。 一、VR全景的应用领…...
Unity网络请求队列
引子 最近的一个项目中由于某个需求,需要多次请求后台接口数据,就自己封装了一下网络请求的队列;刚刚好给大家分享一下,互相交流学习 简述 Unity 的网络请求队列是由 UnityWebRequestQueue 类实现的。这个类继承自 MonoBehaviou…...
【Spring Boot】使用XML配置文件实现数据库操作(一)
使用XML配置文件实现数据库操作(一) 1.SQL映射文件 SQL映射文件就是我们通常说的mapper.xml配置文件,主要实现SQL语句的配置和映射,同时实现Java的POJO对象与数据库中的表和字段进行映射关联的功能。 1.1 mapper.xml的结构 下…...
PMP中常用英文术语
常用术语(五) Project 项目 为完成一个唯一的产品或服务的一种一次性努力。 Project Charter 项目许可证 由高级管理部门提供的一个文档,它给项目经理特权把组织的资源应用到项目工作中。 Project Communication Management 项目沟通管理 项目…...
【Apollo学习笔记】——规划模块TASK之SPEED_BOUNDS_PRIORI_DECIDERSPEED_BOUNDS_FINAL_DECIDER
文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_FINAL_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_FINAL_DECIDER相关配置SPEED_BOUNDS_DECIDER流程将障碍物映射到ST图中ComputeSTBoundary(PathDecision* path_decision)ComputeSTBounda…...
score_inverse_problems运行环境,pycharm重新安装,jax,jaxlib的GPU版本安装-230831
尝试运行https://github.com/yang-song/score_inverse_problems pycharm2019不支持python3.10,其实后来我用来3.8…… pycharm2022.3.3的安装,涉及激活(淘宝5元),搜狗拼音输入(shift不能切换输入法&#x…...
VSC++: 奇怪的风吹
void 奇怪的风吹() {//缘由https://ask.csdn.net/questions/1062454int aa[]{15, 30, 12, 36, 11, 20, 19, 17, 16, 18, 38, 15, 30, 12, 36, 11, 20, 19, 17, 16, 18, 38, -1},j 0, a 0, y 0, z 0;while (aa[j] > 0){if (j && aa[j] > 35 || aa[j] < 15)…...
被动操作系统指纹识别的强大功能可实现准确的物联网设备识别
到 2030 年,企业网络和互联网上的物联网设备数量预计将达到290 亿。这种指数级增长无意中增加了攻击面。 每个互连设备都可能为网络攻击和安全漏洞创造新的途径。Mirai 僵尸网络通过使用数千个易受攻击的 IoT 设备对关键互联网基础设施和热门网站发起大规模 DDoS 攻…...
HsMod:炉石传说体验增强插件技术解析与应用指南
HsMod:炉石传说体验增强插件技术解析与应用指南 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod作为基于BepInEx框架开发的炉石传说插件,通过非侵入式技术手段重构游…...
Pixel Dream Workshop 对比测试:不同采样器与模型版本的出图效果
Pixel Dream Workshop 对比测试:不同采样器与模型版本的出图效果 1. 测试背景与目的 在AI绘画领域,采样器和模型版本的选择直接影响最终生成效果。本次测试旨在通过严谨的对比实验,帮助用户理解Pixel Dream Workshop中不同参数组合的实际表…...
分块技术全解析:长上下文没有杀死它,反而让它成了 RAG 的核心命门
随着 GPT-4o、Claude 3.7 等大模型将上下文窗口推至百万 Token 级别,行业里出现了一种极具误导性的声音:“长上下文已经让文本分块(Chunking)技术彻底过时了”。但现实恰恰相反,长上下文不仅没有淘汰分块,反…...
使用LingBot-Depth优化Git版本控制中的3D模型管理
使用LingBot-Depth优化Git版本控制中的3D模型管理 1. 引言 在3D设计和游戏开发领域,版本控制一直是个头疼的问题。传统的Git系统擅长处理代码和文本文件,但面对3D模型这种二进制文件就显得力不从心了。每次修改模型后,你只能看到"文件…...
Java毕业设计基于springboot+vue的校园心理健康系统
前言 在当今社会,青少年心理健康问题日益受到关注,校园作为学生成长的重要场所,构建完善的心理健康支持体系迫在眉睫。Spring Boot 校园心理健康系统应运而生,旨在为校园心理健康工作提供全方位、智能化的解决方案,助力…...
5大实战技巧让你精通FDS火灾动力学模拟技术
5大实战技巧让你精通FDS火灾动力学模拟技术 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 当一场突如其来的火灾发生时,传统的消防设计往往只能依靠经验估算,而FDS(Fire Dynamics S…...
别再让地图‘飘’了!深入浅出解析Cesium中GCJ-02、BD-09坐标偏移原理与DVGIS库实战
解密国内地图坐标系:从原理到实战解决Cesium中的“飘移”问题 你是否曾在Cesium中加载不同来源的地图数据时,发现明明标注的是同一个位置,却出现了明显的偏移?这种“飘移”现象背后,隐藏着国内地图坐标系复杂的加密体系…...
Qwen3-4B-Instruct-2507问题解决:部署中常见的5个错误及快速修复方法
Qwen3-4B-Instruct-2507问题解决:部署中常见的5个错误及快速修复方法 1. 部署准备与环境检查 在开始部署Qwen3-4B-Instruct-2507模型之前,确保您的环境满足以下基本要求: 硬件配置:推荐使用NVIDIA 4090D显卡(24GB显…...
开源小模型怎么选?Qwen1.5-0.5B-Chat轻量化优势解析
开源小模型怎么选?Qwen1.5-0.5B-Chat轻量化优势解析 1. 为什么需要轻量级小模型? 当我们谈论AI大模型时,很多人首先想到的是那些需要高端GPU、动辄几十GB内存的庞然大物。但在实际应用中,特别是个人开发者、中小企业或者教育场景…...
Z-Image-Turbo-rinaiqiao-huiyewunv 保姆级部署:Ubuntu系统环境配置与模型启动
Z-Image-Turbo-rinaiqiao-huiyewunv 保姆级部署:Ubuntu系统环境配置与模型启动 你是不是刚拿到一个功能强大的AI图像生成镜像,比如这个Z-Image-Turbo-rinaiqiao-huiyewunv,看着名字挺酷,但一想到要在Ubuntu服务器上部署ÿ…...
