У меня есть метод, который выглядит следующим образом:
try {
doStuff();
} catch (Exception ex) {
logger.error(ex);
}
(на самом деле я не использую имена методов, такие как doStuff - это просто для упрощения)
В doStuff я делаю множество вещей, среди которых есть вызов метода доступа к данным (так, еще один метод в doStuff), который заканчивается следующим:
} catch (SQLException ex) {
logger.error(ex);
} finally {
try {
connection.close();
proc.close();
results.close();
} catch (Exception e) {
logger.error(e);
} //<--Exception thrown here. HUH?
}
return stuff;
При переходе по этому коду я получаю вторую фигурную скобку (помеченную комментарием), а затем прыгаю вверх до зацепки в первом блоке кода с исключением NullPointer. results.close()
- это то, что запускается прямо перед ним (результат не равен нулю). Моя среда IDE (NetBeans) не предоставляет трассировку стека (она показывает, что трассировка стека равна нулю) или любую другую информацию, кроме имени исключения (из того, что я могу сказать).
Ранее этот код работал нормально. Фактически, пока он работал, я изменил хранимую процедуру, которую вызывал метод доступа к данным (где я получаю это исключение), и затем эта ошибка начала возникать (без остановки приложения вообще). С тех пор я пытался восстановить и перезапустить, но безрезультатно. Я мог бы изменить sproc обратно, но я действительно хочу выяснить, из-за чего эта ошибка, поскольку не имеет смысла, что sproc даже будет частью этого, учитывая, где в коде происходит исключение.