SpringBoot 错误页面和异常处理
一,错误页面
如图所有,这两种错误提示在springboot开发的应有程序中都很常见,第一种是html请求,第二种是json格式的请求。
在SpringBoot中,默认错误请求控制器是BasicErrorController。
@RequestMapping注解的意思是,如果配置文件没有配置server.error.path,则默认使用error
这里主要看我圈出来的这两个方法,第一个方法是处理html请求的错误,第二种是处理json格式请求的错误。
了解完基础知识之后,就可以开始准备我们专属的错误页面的。
从SpringBoot官方文档里边可以知道,默认的错误页面是在templates下的一个erroe.html文件,如果我们替换掉默认的,只需要再这个目录下新建一个error.html即可。
测试代码:
可以看到,我们新创的error.html已经替换掉springboot默认的错误页面了。除了这种全部错误都用一个页面来展示的方法,我们也可以用错误码来区分错误,让不同的错误跳转到不同的HTML。
测试代码:
其他的错误码页面也是类似,要注意,文件的目录是放在templates/error/xxx.html ,同时,我们也可以看出来,错误页面的响应也是有优先级的,具体的请看总结。
接下来,是动态的错误页面。一般页面上都需要把错误信息给打印出来。
注意,这里配置文件要改动一下,不然页面上是获取不到错误信息的。
小总结:基本上,springboot错误页面的配置已经讲解完了,各种错误页面的优先级是 : 动态 > 静态 > error.html
二,统一异常处理
这里主要涉及到2个注解:@ExceptionHandler和@ControllerAdvice
@ExceptionHandler注解,此注解注解到类的方法上,当此注解里定义的异常抛出时,此方法会被执行。
如果@ExceptionHandler所在的类是@Controller,则此方法只作用在此类。
如果@ExceptionHandler所在的类带有@ControllerAdvice注解,则此方法会作用在全局。
也就是说,局部的异常处理 = @Controller/@RestController + @ExceptionHandler,全局的异常处理 = @ControllerAdvice + @ExceptionHandler
局部异常处理 测试代码:
可以看到,两个不同的controller,同样的异常,不同的错误输出。
全局异常处理-代码测试:
可以看到,两个controller都可以对同一个异常做出同样的处理。
三,总结
介绍了springboot默认处理错误页面的几种方法和介绍了怎么做一个异常统一处理。在项目里,配置了异常统一处理之后,不管哪里抛出的异常,我们只需在统一处理的方法上修改我们的逻辑即可,减轻我们开发和维护的难度,毕竟方法多了之后异常零散分散在不同的方法里,不好管理。
SpringBoot 错误页面和异常处理相关推荐
- Springboot - 错误页面重定向 - 根据错误码重定向到指定页面
Springboot - 错误页面重定向 - 根据错误码重定向到指定页面 在resources目录下建立文件夹public 在public目录下建立文件夹error 在error文件夹下放置404.h ...
- SpringBoot 错误页面使用、自定义错误页、自定义异常、自定义异常解析器
在SpringBoot使用错误页面非常的简单 一. 错误页面使用 二. 自定义错误页 三.自定义异常 四.自定义异常解析器 一. 错误页面使用 只需要在templates里创建一个error文件夹,然 ...
- Springboot错误页面和错误信息定制
SpringBoot2.1.4错误处理机制 前面一片已经介绍了springboot错误处理的机制,其实从整个分析过程中我们已经大概知道如何定制了. 1.错误页面自定义 springboot有个默认的错 ...
- springboot返回404错误页面
springboot返回404错误页面 1.HandlerInterceptor 拦截器的使用 实现HandlerInterceptor 接口,或者继承重写了HandlerInterceptor 接口 ...
- Springboot关于错误页面处理和统一异常处理
01.概述 在项目访问的时候我们经常会发生错误或者页面找不到,比如:资源找不到404,服务器500错误,默认情况下springboot的处理机制都是去跳转内部的错误地址:/error 和与之对应的一个 ...
- SpringBoot异常处理-自定义错误页面
自定义错误页面 SpringBoot 默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制. 一旦程序中出现了异常SpringBoot 会像/error 的url 发送请求. ...
- springboot 全局异常处理 自定义mvc错误页面展示
如下:所有的异常都会进入到这里.根据个人业务按需处理 全局异常处理 @ControllerAdvice public class ErrorAdviceController {//指定捕获对象@Exc ...
- SpringBoot 多种方式配置错误页面
参考资料 SpringBoot异常处理机制-BasicErrorController与@ControllerAdvice Java开发从工作到原理–BasicErrorController统一异常处理 ...
- 017_SpringBoot异常处理方式-自定义错误页面
1. 使用maven构建SpringBoot的名叫spring-boot-exception1项目 2. pom.xml <project xmlns="http://maven.ap ...
最新文章
- spark on yarn 完全分部署_大数据Spark面试题(一)
- 分布与并行计算—生命游戏(Java)
- java按钮退出_java – 如何在此程序中添加退出按钮?怎么样“清楚”?
- 【Python】Matplotlib利用楔形绘制圆环形饼图
- kafka自定义分区实战
- Oracle中的数据库对象
- listctrl 的使用技巧
- Python之认识世界
- java .class文件和.class文件区别是什么?
- 关于ext4 simg fill chunk type
- apache日志文件 accesslog
- vulnhub-Odin
- 0501 0503 模块区别_关于博途STEP7仿真软件究竟与真实PLC有哪些区别?
- office教程:如何给excel表格重命名工作表
- 均值滤波及中值滤波的区别
- Docker容器——重命名镜像的TAG
- MySQL专题四——MySQL函数(聚合函数)
- 1.5小时,一键部署Oracle 11GR2 RAC 集群
- 机器学习 数据预处理之数据打标签
- 路由器原理及路由协议
热门文章
- ASP入门学习(一)准备阶段
- vue-resource post php,Vue学习笔记进阶篇——vue-resource安装及使用
- dotnet 删除自身程序的方法
- FDA首次批准iPad成为医学影像诊断辅助产品
- 隔离型串口服务器和西门子1500PLC和通讯案例
- 计算机控制系统采样与保持实验报告,实验一采样与保持.docx
- python毕业设计作品基于django框架 校园运动场地预约系统毕设成品(6)开题答辩PPT
- linux内核 gpu,科学网—Intel GPU虚拟化方案 KVMGT 正式进入Linux 内核 4.10 - 戚正伟的博文...
- 新版标准日本语高级_第17课
- 汉仪字库与中国美术学院字体设计工作站正式建立