我有一個控制器通知,處理我的應用程序拋出的所有驗證異常,如下所示。彈簧過濾器拋出自定義異常
@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編程)。 –