Я разбиваю себе голову этим:
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) вызывается (как и ожидалось), а затем захватывается первым уловом (как и ожидалось), а затем возвращается и вызывается вызывающей функцией (это не ожидается). Поскольку исключение уже было найдено здесь, выполнение должно быть продолжено.
Я прилагаю скриншот, где вы можете увидеть:
Любые идеи очень ценятся
Обновить:
Спасибо, это мой стек вызовов: Servlet> UserListHandler> setParameters
UserListHandler() является конструктором и выглядит следующим образом:
Сервлет выглядит следующим образом:
Мне интересно, что исключение, которое сервлет захватывает, - это исключение 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
Понятно, что есть и другое исключение.
Может быть, "сообщения", внутри catch имеет значение NULL и бросает новое исключение NullPointerException?