Я считаю, что ваша программа все еще работает. e.printStackTrace()
отображает тот же тип вывода, что и ваша программа, если бы исключение не было обнаружено.
Пример:
`java.lang.NumberFormatException: For input string: "asdf"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Test.isInteger(Test.java:7)
at Test.main(Test.java:29)`
Кроме того, вы можете не увидеть "Enter integer: "
после вывода отладки, поскольку поток, в который он отправляется, System.err
, отделен от System.out
, обычного потока печати. Это означает, что иногда распечатки в System.err и System.out не всегда отображаются в том же порядке, в котором они вызываются.
Все это означает, что ваша программа, вероятно, все еще работает. Это просто похоже на сбой, поскольку e.printStackTrace()
печатает ту же информацию, которую вы получили бы в случае необработанного исключения, вызвавшего сбой.