Java улов игнорируется

1

Я разбиваю себе голову этим:

protected void setParameters(HttpServletRequest request) {

    try {
        page = Integer.parseInt(request.getParameter("p"));
    }
    catch (NumberFormatException | NullPointerException e) {
        messages.add("Invalid page.");
    }

    try {
        status = Integer.parseInt(request.getParameter("s"));
    }
    catch (NumberFormatException | NullPointerException e) {
        messages.add("Invalid status.");
    }

}

Прежде чем я разместил этот метод в суперклассе, он работал как ожидалось; но теперь, когда у меня есть строка запроса без параметра p (например), исключение (NumberFormatException) вызывается (как и ожидалось), а затем захватывается первым уловом (как и ожидалось), а затем возвращается и вызывается вызывающей функцией (это не ожидается). Поскольку исключение уже было найдено здесь, выполнение должно быть продолжено.

Я прилагаю скриншот, где вы можете увидеть:

  • в розовом: моя точка останова
  • зеленым цветом: моя текущая строка выполнения
  • как воздушный шар: текущий тип исключения, в котором четко сказано, что это исключение NumberFormatException

Изображение 174551

Любые идеи очень ценятся

Обновить:

Спасибо, это мой стек вызовов: Servlet> UserListHandler> setParameters

UserListHandler() является конструктором и выглядит следующим образом:

Изображение 174551

Сервлет выглядит следующим образом:

Изображение 174551

Мне интересно, что исключение, которое сервлет захватывает, - это исключение NullPointerException.

Верхняя часть моей трассировки стека выглядит так:

Mar 31, 2014 5:13:06 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [UserListServlet] in context with path [/App.Web] threw exception [java.lang.NullPointerException] with root cause
java.lang.NullPointerException
  • 1
    Можете ли вы показать вызывающий код и доказательства того, что он также перехватывает обработанное исключение?
  • 0
    Где ваша трассировка стека указывает на то, что ваше исключение было возбуждено?
Показать ещё 3 комментария
Теги:
exception
try-catch

1 ответ

1
Лучший ответ

Понятно, что есть и другое исключение.

Может быть, "сообщения", внутри catch имеет значение NULL и бросает новое исключение NullPointerException?

  • 0
    Я чувствую себя так глупо! Спасибо большое @Alfcope, сообщения никогда не создавались. И спасибо всем остальным тоже!
  • 0
    Всякое случается. Я думаю, что все сделали одну и ту же ошибку хотя бы один раз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню