Spring Boot中默认带了error的映射,但是这个错误页面显示给用户并不是很友好。

统一异常处理
通过使用@ControllerAdvice定义统一异常处理的类,而不是在每个Controller中逐个定义。
@ExceptionHandler用来定义函数针对的函数类型,最后将Exception对象和请求URL映射到URL中。
@ControllerAdvice
class ExceptionTranslator {
public static final String DEFAULT_ERROR_VIEW = "error";
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("exception", e);
mav.addObject("url", req.getRequestURL());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}
}
实现error.html页面展示
在templates目录下创建error.html。
例如:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title>统一异常处理</title>
</head>
<body>
<h1>Error Handler</h1>
<div th:text="${url}"></div>
<div th:text="${exception.message}"></div>
</body>
</html>
返回使用Json格式
只需在@ExceptionHandler之后加入@ResponseBody,就能让处理函数return的内容转换为JSON格式
创建一个JSON返回对象,如:
public class ErrorDTO implements Serializable {
private static final long serialVersionUID = 1L;
private final String message;
private final String description;
private List<FieldErrorDTO> fieldErrors;
//getter和setter省略
}
可以为指定的Exception添加异常处理
@ExceptionHandler(ConcurrencyFailureException.class)
@ResponseStatus(HttpStatus.CONFLICT)
@ResponseBody
public ErrorDTO processConcurencyError(ConcurrencyFailureException ex) {
return new ErrorDTO(ErrorConstants.ERR_CONCURRENCY_FAILURE);
}
ErrorConstants.ERR_CONCURRENCY_FAILURE 是定义的一个异常信息。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# spring
# boot
# 统一异常
# 异常处理
# 全局异常
# Spring Boot 中的默认异常处理机制解析(如 /error&n
# SpringBoot实现全局异常处理方法总结
# Spring Boot全局异常处理解析
# 详解Springboot自定义异常处理
# Springboot之自定义全局异常处理的实现
# springboot全局异常处理详解
# SpringBoot中默认异常处理机制的实现
# 只需
# 不是很
# 能让
# 这篇文章
# 后将
# 带了
# 转换为
# 创建一个
# 而不是
# 目录下
# 在每个
# 有疑问
# throws
# req
# addObject
# mav
# ModelAndView
# DEFAULT_ERROR_VIEW
# HttpServletRequest
# defaultErrorHandler
相关文章:
网站制作壁纸教程视频,电脑壁纸网站?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站之星后台密码如何安全设置与找回?
如何用AWS免费套餐快速搭建高效网站?
建站之星导航菜单设置与功能模块配置全攻略
常州企业网站制作公司,全国继续教育网怎么登录?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
建站之星各版本价格是多少?
如何通过建站之星自助学习解决操作问题?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
5种Android数据存储方式汇总
油猴 教程,油猴搜脚本为什么会网页无法显示?
如何快速登录WAP自助建站平台?
如何用好域名打造高点击率的自主建站?
如何快速搭建FTP站点实现文件共享?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
为什么Go需要go mod文件_Go go mod文件作用说明
建站10G流量真的够用吗?如何应对访问高峰?
创业网站制作流程,创业网站可靠吗?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何在七牛云存储上搭建网站并设置自定义域名?
建站主机如何安装配置?新手必看操作指南
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
建站之星如何优化SEO以实现高效排名?
建站为何优先选择香港服务器?
如何用美橙互联一键搭建多站合一网站?
建站上传速度慢?如何优化加速网站加载效率?
网站制作难吗安全吗,做一个网站需要多久时间?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Java解压缩zip - 解压缩多个文件或文件夹实例
建站之星展会模版如何一键下载生成?
制作网站怎么制作,*游戏网站怎么搭建?
如何快速启动建站代理加盟业务?
长沙做网站要多少钱,长沙国安网络怎么样?
如何配置FTP站点权限与安全设置?
如何在建站之星绑定自定义域名?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
,制作一个手机app网站要多少钱?
如何通过虚拟主机快速搭建个人网站?
广州商城建站系统开发成本与周期如何控制?
济南企业网站制作公司,济南社保单位网上缴费步骤?
详解jQuery中基本的动画方法
实现点击下箭头变上箭头来回切换的两种方法【推荐】
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
如何在IIS7中新建站点?详细步骤解析
如何快速查询网站的真实建站时间?
Android自定义控件实现温度旋转按钮效果
*请认真填写需求信息,我们会在24小时内与您取得联系。