除了自定义错误页面,Spring Boot 还支持自定义异常处理程序,可以定义局部异常处理程序和全局 异常处理程序。局部异常处理程序是在控制器类中定义一个方法,用于处理一个或多个指定类型的 异常,局部异常处理程序在控制器类中定义,所以只有该请求该控制器中方法发生对应类型异常时,异常处理程序才会被调用。
如果希望一个异常处理程序可以被多个控制器类使用,可以在父亲 类中定义异常处理程序,让这多个控制器类继承相同的父类或直接定义全局异常处理程序。
定义局部异常处理程序
定义局部异常处理程序只需要处理异常的控制器类中添加方法,指定处理的异常类型,并在方法前 使用@ExceptionHandler 注解说明该方法是一个异常处理程序即可。
例如,我们在 CalculateController 类中添加一个方法,用来处理 ArithmeticException 类型的异常,代码如下:
package com.alice.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class CalculateController {
@ExceptionHandler(ArithmeticException.class)
public String exceptionHandler(Exception e