【Spring】SpringBoot 统一功能处理
在Spring Boot中,可以通过定义全局异常处理器来实现统一功能处理。这个处理器会捕获应用中发生的所有异常,并且可以根据异常类型和其他条件来执行相应的处理逻辑。
以下是一个简单的全局异常处理器示例代码:
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 {
// 处理所有的Exception类型的异常
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String handleAllExceptions(Exception ex) {
// 这里可以记录日志,发送警告等
return "An error occurred: " + ex.getMessage();
}
// 处理MethodArgumentNotValidException异常,即@Valid验证失败的异常
@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
类被标记为@ControllerAdvice
,这意味着它将作为全局异常处理器来处理所有控制器中抛出的异常。handleAllExceptions
方法捕获所有类型的异常,并返回一个错误消息。handleMethodArgumentNotValid
方法处理@Valid
验证失败的情况,并返回一个自定义的错误响应。
这样,你就可以为Spring Boot应用添加统一的异常处理功能,从而提高应用的健壮性和用户体验。
评论已关闭