@ExceptionHandler не обрабатывает вызванные исключительные ситуации

У меня есть метод в моем контроллере, который обработает исключения, выданные приложением. Таким образом, у меня есть метод как этот.

@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.

Какова может быть проблема?

Спасибо.

9
задан Raedwald 3 September 2014 в 20:02
поделиться

1 ответ

Если вы посмотрите свои журналы, вы, вероятно, увидите следующее:

java.lang.IllegalStateException : Неподдерживаемый аргумент [ org.springframework.ui.Model ] для @ExceptionHandler метод

Другими словами, методам @ExceptionHandler не разрешено объявлять параметр Model (см. docs ).

Удалите этот параметр (который вы все равно не используете), и он должен работать должным образом.

7
ответ дан 3 November 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: