SpringBoot : 全局异常配置
时间:2022-07-24
本文章向大家介绍SpringBoot : 全局异常配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
@ControllerAdvice
public class AllException {
@ExceptionHandler(Exception.class)
public void exception(Exception e, HttpServletResponse response) throws IOException {
response.setContentType ("text/html;charset=utf-8");
ObjectMapper mapper = new ObjectMapper();
ObjectNode root = mapper.createObjectNode();//创建一个根对象
root.put("code", 900);
root.put("msg", e.getMessage());
root.put("level", "应用级异常");
PrintWriter out = response.getWriter();
out.write(root.toString());
out.flush();
out.close();
}
}
image.png
但是这种异常只能处理应用级别的异常,容器级别的异常就处理不了了,比如OutOfMemorryException,如何处理呢? 详见如下代码:
@Component
public class MyErrorAttribute extends DefaultErrorAttributes {
@Override
public Map<String , Object> getErrorAttributes(WebRequest webRequest , boolean
includeStackTrace) {
Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest,
includeStackTrace);
//封装成自定义的字段,去掉系统默认字段
errorAttributes.put("code",errorAttributes.get("status"));
errorAttributes.put("msg",errorAttributes.get("message"));
errorAttributes.put("level","系统级异常");
errorAttributes.remove("error");
errorAttributes.remove("message");
errorAttributes.remove("status");
return errorAttributes;
}
}
image.png
- 怎样去阅读源码,这篇文章值的你一读
- HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
- Mybatis 3 配置 Log4j
- 基于Three.js的360度全景--photo-sphere-viewer--简介
- MyBatis3-配置使用log4j输出日志
- nginx支持跨域访问
- nginx静态资源文件无法访问,403 forbidden错误
- vue.js如何在标签属性中插入变量参数
- SpringBoot解决ajax跨域问题
- WebBrowser(IE) 与 JS 相互调用
- HOSTS配置问题导致集群异常故障分析
- Linux Regulator Framework(2)_regulator driver
- systemd的作用
- alsa声卡分析alsa-utils调用过程(二)-tinymixer
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- CentOS7升级内核kernel5.0版本
- 详解ubuntu14.04如何设置静态IP的方法
- linux安装图形化界面的操作方法
- Apache FlinkCEP 实现超时状态监控的步骤详解
- 解决Centos7下crontab+shell脚本定期自动删除文件问题
- 详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势
- 如何在 Linux 中查找一个命令或进程的执行时间
- Ubuntu 18.04 LTS中配置IP地址的完整步骤
- Linux系统下Nginx支持ipv6配置的方法
- 微信研发体系下的分布式配置系统设计概要
- Linux双网卡绑定脚本的方法示例
- Serverless 有一百种玩法,比好玩更好玩
- 如何在容器服务中获取客户端真实源IP
- Linux服务器间文件实时同步的实现
- centos7 设置grub密码及单用户登录实例代码