1
Когда я кидает исключение throw new ForbiddenAjaxException()
внутри @ExceptionHandler
Throw исключение внутри @ExceptionHandler
@ExceptionHandler({ ForbiddenException.class })
public String forbiddenException(HttpServletRequest request, HttpServletResponse response) {
if("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){
throw new ForbiddenAjaxException();
}
return "redirect:/projects/error";
}
Она не ответила с ошибкой @ResponseStatus(HttpStatus.FORBIDDEN)
@ResponseStatus(HttpStatus.FORBIDDEN)
public class ForbiddenAjaxException extends RuntimeException {}
Войдите:
11:00:06.277 [http-nio-8080-exec-8] ERROR org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - Failed to invoke @ExceptionHandler method: public java.lang.String controller.projects.ExceptionHandling.forbiddenException(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
exceptions.ForbiddenAjaxException
at controller.projects.ExceptionHandling.forbiddenException(ExceptionHandling.java:33) ~[classes/:?]
PS: Когда ForbiddenException
(обычные запросы не ajax) бросается t, пойманный обработчиком исключений.
, что произойдет, если вы бросаете 'ForbiddenAjaxException' непосредственно от контроллера? – Ralph
Выглядит как дубликат: http://stackoverflow.com/questions/23077573/how-to-rethrow-exception-as-responsestatus-annotated-exception-in-spring-excep – Ralph
@Ralph это работает, если я бросаю ForbiddenAjaxException непосредственно с контроллера – Youssef