SpringBoot统一功能处理
在Spring Boot中,可以使用@ControllerAdvice注解创建全局异常处理类,来实现统一功能处理。以下是一个简单的示例:
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
// 处理所有不同的异常情况
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String handleAllExceptions(Exception ex) {
// 这里可以记录日志,发送警报等
return "An error occurred: " + ex.getMessage();
}
// 处理方法参数验证失败的异常
@Override
protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex,
HttpHeaders headers,
HttpStatus status,
WebRequest request) {
// 这里可以返回自定义的错误信息
return new ResponseEntity<>("Validation failed: " + ex.getBindingResult().toString(), HttpStatus.BAD_REQUEST);
}
}
在这个例子中,我们定义了一个全局异常处理类GlobalExceptionHandler,它继承自ResponseEntityExceptionHandler。我们覆盖了handleMethodArgumentNotValid方法来处理方法参数验证失败的异常,并且添加了一个用于处理其他异常的handleAllExceptions方法。这样,你就可以为Spring Boot应用程序添加统一的异常处理功能。
评论已关闭