У меня есть метод в моем контроллере, который обработает исключения, выданные приложением. Таким образом, у меня есть метод как этот.
@Controller
public class ExceptionController {
@RequestMapping(value="/error")
@ExceptionHandler(value={Exception.class, NullPointerException.class})
public String showError(Exception e, Model model){
return "tiles:error";
}
}
И попробовать I, если это работает, я бросаю NullPointerException в другой метод в другом контроллере метода:
boolean a = true;
if(a){
throw new NullPointerException();
}
После того, как исключение выдается, оно печатается в JSP, но оно не идет, бросают мой showError () метод (я установил точку останова там, и оно никогда не входит). showError () метод поймает исключение и покажет различные ошибочные страницы в зависимости от типа исключительной ситуации (хотя теперь это всегда показывает ту же ошибочную страницу). Если я перехожу к URL / ошибка, это показывает ошибочную страницу так showError (), метод в порядке.
Я использую Spring 3.
Какова может быть проблема?
Спасибо.
Если вы посмотрите свои журналы, вы, вероятно, увидите следующее:
java.lang.IllegalStateException
: Неподдерживаемый аргумент [org.springframework.ui.Model
] для@ExceptionHandler
метод
Другими словами, методам @ExceptionHandler
не разрешено объявлять параметр Model
(см. docs ).
Удалите этот параметр (который вы все равно не используете), и он должен работать должным образом.