我有一个控制器通知,处理我的应用程序抛出的所有验证异常,如下所示。弹簧过滤器抛出自定义异常
@RestControllerAdvice
public class RestApiExceptionController {
@ExceptionHandler(ValidationErrorException.class)
public ResponseEntity<?> appNotFoundException(ValidationErrorException exception) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse(exception.getErrorCode(), exception.getMessage()));
}
}
以我的方式,我想创建一个筛选器,它将验证每个请求并在必要时抛出自定义异常。但事情是,我不能抛出自定义的异常,如下所示。
public class ValidationFilter implements Filter {
...
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
throw new ValidationErrorException(); // This is impossible
}
...
}
如何在这种情况下抛出ValidationErrorException或有其他更好的方法来处理此类任务。
是的,你可以...它只是一个'RuntimeException'或一个'ServletException'。此外,这与Spring没有关系,而是一般的Servlet API(甚至是一般的Java编程)。 –