本文为大家分享了Spring Boot全局异常处理,供大家参考,具体内容如下
1、后台处理异常
a、引入thymeleaf依赖
1
2
3
4
5
|
<!-- thymeleaf模板插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
|
b、在application.properties文件中设置属性
1
2
|
#关闭thymeleaf模板的缓存
spring.thymeleaf.cache= false
|
c、编写后台处理Handler
1
2
3
4
5
6
7
8
9
10
11
12
|
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模板页面
1
2
3
4
5
6
7
8
9
10
11
12
|
<!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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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、页面访问结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。