Im 'работает над пружинным приложением в последнее время, используя спящий режим, тимелеар и пружинную защиту.Обработка исключений Spring: обработчик @exception не вызывается
я наткнулся на ситуацию: я сделал специальное исключение:
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class GlobalUrlParametersErrorsException extends RuntimeException {
private String errorMsgSignature;
private String errorMsgContent;
private String redirectionUrl;
public String getErrorMsgSignature() {
return errorMsgSignature;
}
public void setErrorMsgSignature(String errorMsgSignature) {
this.errorMsgSignature = errorMsgSignature;
}
public String getErrorMsgContent() {
return errorMsgContent;
}
public void setErrorMsgContent(String errorMsgContent) {
this.errorMsgContent = errorMsgContent;
}
public String getRedirectionUrl() {
return redirectionUrl;
}
public void setRedirectionUrl(String redirectionUrl) {
this.redirectionUrl = redirectionUrl;
}
public GlobalUrlParametersErrorsException(String errorMsgSignature, String errorMsgContent, String redirectionUrl){
this.errorMsgSignature = errorMsgSignature;
this.errorMsgContent = errorMsgContent;
this.redirectionUrl = redirectionUrl;
}
}
Это исключение продолженную некоторыми другими пользовательскими исключениями я написал.
Для обработки этих исключений я добавил @ControllerAdvice
:
@ControllerAdvice
public class GlobalDefaultExceptionHandler {
//some other exception like hibernate exception ...
@ExceptionHandler(value = GlobalUrlParametersErrorsException.class)//{InvalidDateException.class, InvalidRole.class, NoSuchUser.class, NoSuchNotification.class,NoSuchConsultation.class,NoSuchRdv.class})
public ModelAndView whenUrlDateParametersSuckMethod(RedirectAttributes redirectAttributes,GlobalUrlParametersErrorsException e){
redirectAttributes.addFlashAttribute(e.getErrorMsgSignature(),e.getErrorMsgContent());
return new ModelAndView("redirect:"+e.getRedirectionUrl());
}
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
ModelAndView m = new ModelAndView("errors/defaultError");
m.addObject("exception", e.toString());
m.addObject("url", req.getRequestURL());
return m;
}
}
Но весь мои исключения, что я бросаю в контроллере не поймали (я получаю GlassFish страницы ошибки)
Так что же случился с с моим согласен?
PS: Когда я удалить обработчик исключений из моего пользовательского исключения, и пусть только другую, она работает
имеют вид [здесь] (http://ankursinghal86.blogspot.in/2014/07/exception-handling-in-spring-mvc .html) –
Эта статья взята из [здесь] (http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc), и все же я читаю, я до сих пор не получаю почему мой не работает – Aissasa
Не уверенный в этом, но я никогда не видел весной документацию, что было приоритетом, когда более одного '@ ExceptionHandler' * в том же классе * соответствует Исключению. Это будет связано с тем, что если у вас есть только один обработчик исключений, он работает. У вас нет сообщений в журналах? –