SpringBoot默认的处理异常的机制:
SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常SpringBoot会向/error 的 url 发送请求。在springBoot中提供了一个叫BasicErrorController来处理/error请求,然后跳转到默认显示异常的页面来展示异常信息。
如果我们需要将所有的异常同一跳转到自定义的错误页面, 需要再src/main/resources/templates 目录下创建error.html页面。注意:名称必须叫error
SpringBoot处理异常方式一:自定义错误页面
@RequestMapping("hello")
public String hello(){
int i = 10 / 0;
return "success";
}
@RequestMapping("show1")
public String show1(){
String str = null;
System.out.println(str.length());
return "success";
}
错误页面展示:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>错误提示页面</title>
</head>
<body>
页面出错了
<span th:text="${error}"></span>
</body>
</html>
SpringBoot处理异常方式一:下标索引越界
@RequestMapping("show2")
public String show2(){
int[] arr = new int[3];
arr[100] = 90;
return "success";
}
@ControllerAdvice // 标识当前类是一个全局异常处理类
@ControllerAdvice+@ExceptionHandler 注解处理异常
上一种方式必须要在每一个Controler里面重复写异常处理代码,代码复用性太差,这一种方法可以实现异常的全局处理。需要创建一个能够处理异常的全局异常类。在该类上需要添加@ControllerAdvice 注解
处理思路