Spring Boot全局异常处理就像是给你的应用程序穿上了一层保护衣,当程序运行过程中不小心”摔跤”(遇到错误或异常)时,它可以优雅地处理这些情况,不让用户看到难看的错误信息,而是展示友好的提示自动处理问题。
第一步:认识异常处理器
想象一下,异常处理器就是一个超级英雄,每当有异常发生,它就会立刻出现,处理这些麻烦。
第二步:创建异常处理器
1. 新建一个类:首先,你需要创建一个新的Java类,我们通常叫它ExceptionHandler或者类似的名字,用来存放全局异常处理的逻辑。
2. 添加@ControllerAdvice注解:在类的上面加上@ControllerAdvice,这告诉Spring Boot,这个类是一个全局的异常处理器,对所有控制器(Controller)都有效。
import org.springframework.web.bind.annotation.ControllerAdvice;
@ControllerAdvice
public class GlobalExceptionHandler {
// 这里将添加处理异常的方法
}
第三步:编写异常处理方法
1. 识别异常类型:在类里面,你需要定义方法来处理具体的异常。比如,你想处理所有未被捕获的异常,就可以定义一个方法,这个方法接收一个参数,类型是Exception或者其子类。
2. 使用@ExceptionHandler注解:在处理方法上使用@ExceptionHandler注解,告诉Spring Boot,当遇到指定类型的异常时,执行这个方法。
3. 编写处理逻辑:在方法体内,你可以编写任何想要的处理逻辑,比如记录日志、返回友好的错误信息给用户等。
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleAllExceptions(Exception ex) {
// 记录错误日志
System.out.println("发生了错误:" + ex.getMessage());
// 返回友好的错误信息给用户
return ResponseEntity.status(500).body("哎呀,出错了,请稍后再试!");
}
}