Spring Boot全局异常处理解析
作者:Miss_wang 时间:2023-07-06 07:16:35
本文为大家分享了Spring Boot全局异常处理,供大家参考,具体内容如下
1、后台处理异常
a、引入thymeleaf依赖
<!-- thymeleaf模板插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
b、在application.properties文件中设置属性
#关闭thymeleaf模板的缓存
spring.thymeleaf.cache=false
c、编写后台处理Handler
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
//设置此handler处理所有异常
@ExceptionHandler(value=Exception.class)
public void defaultErrorHandler(){
System.out.println("-------------default error");
}
}
d、后台异常打印
-------------default error
2017-06-16 14:54:05.314 WARN 6892 --- [nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.dao.IncorrectResultSizeDataAccessException: result returns more than one elements; nested exception is javax.persistence.NonUniqueResultException: result returns more than one elements
2、页面处理异常
a、编写html模板页面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<meta charset="UTF-8" />
<title>Insert title here</title>
</head>
<body>
<h1 th:inlines="text">异常出现啦</h1>
${messages}
</body>
</html>
b、修改Handler
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value=Exception.class)
@ResponseBody
public String defaultErrorHandler(){
System.out.println("-------------default error");
return "系统错误,请联系管理员";
}
}
c、页面访问结果
标签:Spring,Boot,异常处理
0
投稿
猜你喜欢
Java探索之Feign入门使用详解
2023-08-18 03:38:06
详谈hibernate,jpa与spring data jpa三者之间的关系
2022-08-04 22:35:57
Android通过SOCKET下载文件的方法
2023-08-27 01:11:48
Android简单获取经纬度的方法
2021-07-28 05:26:47
SpringBoot整合WebSocket实现后端向前端发送消息的实例代码
2021-10-30 19:24:56
.net实现序列化与反序列化实例解析
2022-08-05 06:42:08
Android View移动的3种方式总结
2022-04-29 02:04:47
详解Java中restTemplate的使用
2023-06-19 23:20:29
Java连接Linux服务器过程分析(附代码)
2023-05-28 19:57:09
java泛型常用通配符实例解析
2022-09-16 22:14:50
使用RecyclerView实现水平列表
2022-04-25 19:27:13
Java运行时数据区概述详解
2023-10-08 07:00:10
Opencv图像处理之轮廓外背景颜色改变
2022-02-17 01:33:34
C#创建windows系统用户的方法
2022-07-16 20:30:12
在c#中使用servicestackredis操作redis的实例代码
2022-06-23 14:28:48
kotlin延迟初始化和密封类详细讲解
2022-07-10 01:53:52
c#汉诺塔的递归算法与解析
2022-08-13 08:13:59
C#隐式运行CMD命令(隐藏命令窗口)
2023-05-03 17:41:32
Android使用onCreateOptionsMenu()创建菜单Menu的方法详解
2023-05-13 06:21:01
Android开发中Activity的生命周期及加载模式详解
2021-07-28 02:33:44