2024年1月Java项目开发指南18:自定义异常输出
1.2024年1月Java项目开发指南1:环境与工具准备2.2024年1月Java项目开发指南2:项目设计3.2024年1月Java项目开发指南3:创建Springboot项目4.2024年1月Java项目开发指南4:IDEA里配置MYSQL5.2024年1月Java项目开发指南5:controller、service、mapper6.2024年1月Java项目开发指南6:接口测试7.2024年1月Java项目开发指南7:增删改查与接口测试8.2024年1月Java项目开发指南8:统一数据返回格式9.2024年1月Java项目开发指南9:密码加密存储10.2024年1月Java项目开发指南10:vite+Vue3项目创建11.2024年1月Java项目开发指南11:axios请求与接口统一管理12.2024年1月Java项目开发指南12:前后端分离项目跨域问题解决13.2024年1月Java项目开发指南13:登录注册实现14.2024年1月Java项目开发指南14:关于post中的body和param以及java中的@RequestBody和@RequestParam15.2024年1月Java项目开发指南15:vue3+AntDesignVue 设计页面16.2024年1月Java项目开发指南16:用户自由选择字段查询、是否模糊查询17.2024年1月Java项目开发指南17:自动接口文档配置18.2024年1月Java项目开发指南19:Vue动态页面渲染
19.2024年1月Java项目开发指南18:自定义异常输出
一般情况下,报错信息一大堆,值得注意的只有三个地方:
- 哪个文件发生了错误
- 哪一行发生了错误
- 错误原因是什么
只要知道这三个东西就能快速的定位到错误发生的位置并且根据提示解决。
如果你也喜欢我的这种异常输出(如文章顶部图)
那么可以参考以下代码:
package com.guaiguailang.harmony.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.fusesource.jansi.Ansi;
@RestControllerAdvice
@Slf4j
//全局异常拦截器
public class GlobalExceptionHandler {
// 全局异常拦截
@ExceptionHandler
public void handlerException(Exception e) {
// 打印堆栈跟踪中的第一个元素(通常是出错的地方)
StackTraceElement[] stackTrace = e.getStackTrace();
if (stackTrace.length > 0) {
StackTraceElement element = stackTrace[0]; // 第一个元素通常是抛出异常的点
String errorMessage = "["+element.getLineNumber()+"]"+element.getFileName()+" ("+element.getClassName()+")";
System.err.println(Ansi.ansi().fgRed().a(errorMessage).reset());
System.err.println(Ansi.ansi().fgRed().a("错误原因:"+e.getMessage()).reset()+"\n");
}
}
}
请参考上述代码进行修改,满足自己所需
版 权 声 明
作者:萌狼蓝天
QQ:3447902411(仅限技术交流,添加请说明方向)
转载请注明原文链接:https://www.cnblogs.com/zwj/p/18457079/project202401-18
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步