微服务 教程
1085个小节阅读:195.5k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
在控制器中定义异常处理方法只能处理该控制器类的异常,要想处理所有控制器的异常,需要定义全局异常处理类。
编写另一个有异常的控制器类
xxxxxxxxxx
@Controller
public class MyController2 {
@RequestMapping("/t2")
public String t2(){
int[] arr = new int[1];
arr[2] = 10;
return "index";
}
}
编写全局异常处理器类
xxxxxxxxxx
// 全局异常处理器类,需要添加@ControllerAdvice
@ControllerAdvice
public class GlobalExceptionHandler {
/**
* 异常处理方法
*
* @param ex 异常对象
* @param model 模型对象
* @return
*/
// 添加@ExceptionHandler,表示该方法是处理异常的方法,属性为处理的异常类
@ExceptionHandler({java.lang.NullPointerException.class, java.lang.ArithmeticException.class})
public String exceptionHandle1(Exception ex, Model model) {
// 向模型中添加异常对象
model.addAttribute("msg", ex);
// 跳转到异常页面
return "error";
}
// 方法一不能处理的异常交给方法二处理
@ExceptionHandler(java.lang.Exception.class)
public String exceptionHandle2(Exception ex, Model model) {
model.addAttribute("msg", ex);
return "error2";
}
}
1.在SpringMVC中,类上方添加表示该类中方法会处理所有异常
A @Controller
B @ControllerAdvice
C @ExceptionHandler
D @Advice
1=>B