在SpringBoot中如何实现异常处理?

在Spring Boot中,异常处理可以通过使用Spring的@ControllerAdvice@ExceptionHandler注解来实现。

@ControllerAdvice 是一个全局的异常处理类,它可以集中处理所有的异常。你可以在这个类中定义多个方法来处理不同类型的异常。

@ExceptionHandler 注解用于定义异常处理方法。这个注解需要配合@ControllerAdvice使用,被@ExceptionHandler标注的方法会处理指定类型的异常。

以下是一个简单的示例:

@ControllerAdvice
public class GlobalExceptionHandler {

  // 处理所有的Exception异常
  @ExceptionHandler(value = Exception.class)
  public ResponseEntity<String> exceptionHandler(Exception e) {
    return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
  }

  // 处理所有的NullPointerException异常
  @ExceptionHandler(value = NullPointerException.class)
  public ResponseEntity<String> nullPointerExceptionHandler(NullPointerException e) {
    return new ResponseEntity<>("Null Pointer Exception!", HttpStatus.INTERNAL_SERVER_ERROR);
  }
}

在这个示例中,我们定义了一个全局的异常处理类GlobalExceptionHandler,并在其中定义了两个处理异常的方法。

exceptionHandler方法处理所有的Exception类型的异常,当这种异常发生时,它会返回一个包含异常信息的ResponseEntity对象,并设置HTTP状态码为500

nullPointerExceptionHandler方法处理所有的NullPointerException类型的异常,当这种异常发生时,它会返回一个包含”Null Pointer Exception!”消息的ResponseEntity对象,并设置HTTP状态码为500

这是一个简单的全局异常处理的例子,你可以根据需要定义更多的异常处理方法,来处理不同类型的异常。

另外,你还可以通过实现ErrorController接口,提供一个全局的错误页面。例如,当用户访问一个不存在的页面时,你可以返回一个自定义的404错误页面。

这就是在Spring Boot中实现异常处理的基本方法。

发表评论

后才能评论