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
相关文章:
如何选择域名并搭建高效网站?
Bpmn 2.0的XML文件怎么画流程图
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
,制作一个手机app网站要多少钱?
如何快速搭建高效简练网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
动图在线制作网站有哪些,滑动动图图集怎么做?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
建站之星如何快速解决建站难题?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何通过FTP空间快速搭建安全高效网站?
制作网站公司那家好,网络公司是做什么的?
建站之星代理如何优化在线客服效率?
建站ABC备案流程中有哪些关键注意事项?
平台云上自助建站如何快速打造专业网站?
建站主机服务器选型指南与性能优化方案解析
郑州企业网站制作公司,郑州招聘网站有哪些?
如何自定义建站之星模板颜色并下载新样式?
建站为何优先选择香港服务器?
宁波自助建站系统如何快速打造专业企业网站?
济南企业网站制作公司,济南社保单位网上缴费步骤?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何配置支付宝与微信支付功能?
如何在IIS服务器上快速部署高效网站?
如何在IIS7上新建站点并设置安全权限?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
建站主机如何选?高性价比方案全解析
代刷网站制作软件,别人代刷火车票靠谱吗?
济南专业网站制作公司,济南信息工程学校怎么样?
如何通过NAT技术实现内网高效建站?
如何确保FTP站点访问权限与数据传输安全?
小程序网站制作需要准备什么资料,如何制作小程序?
如何用已有域名快速搭建网站?
建站之星在线客服如何快速接入解答?
教程网站设计制作软件,怎么创建自己的一个网站?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何设置并定期更换建站之星安全管理员密码?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
兔展官网 在线制作,怎样制作微信请帖?
建站之星展会模板:智能建站与自助搭建高效解决方案
零基础网站服务器架设实战:轻量应用与域名解析配置指南
网站制作模板下载什么软件,ppt模板免费下载网站?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
网站制作难吗安全吗,做一个网站需要多久时间?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何制作一个表白网站视频,关于勇敢表白的小标题?
*请认真填写需求信息,我们会在24小时内与您取得联系。