Spring Boot提供了一个全局异常处理的方法,可以通过编写一个@ControllerAdvice
注解的类来实现统一异常处理。
具体步骤如下:
创建一个类并使用@ControllerAdvice
注解标注,该类需要被Spring扫描到。
在该类中编写异常处理方法,可以使用@ExceptionHandler
注解来标注处理特定异常的方法。
在处理方法中,可以根据需要对异常进行处理,比如记录日志、返回特定的错误信息等。
可以使用@ResponseStatus
注解来标注处理方法的返回状态码。
示例代码如下:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ResponseEntity<String> handleException(Exception e) {
// 处理异常的逻辑,比如记录日志、返回错误信息等
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
@ExceptionHandler(NotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public ResponseEntity<String> handleNotFoundException(NotFoundException e) {
// 处理特定异常的逻辑
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Not Found");
}
}
在上面的代码中,handleException
方法使用@ExceptionHandler
注解标注,该方法会处理所有未被其他处理方法处理的异常,并返回500状态码和错误信息"Internal Server Error"。
handleNotFoundException
方法处理NotFoundException
异常,并返回404状态码和错误信息"Not Found"。
注意,需要根据具体需求来编写异常处理方法,并可以根据业务需要定义自己的异常类。