Как правильно использовать сканер в рекурсивном основном методе? [Дубликат]

В моем случае это было связано с тем, что поле, являющееся полем внешнего ключа, имеет слишком длинное имя, т. е. foreign key (some_other_table_with_long_name_id). Попробуйте коротко. В этом случае сообщение об ошибке немного вводит в заблуждение.

Кроме того, как упоминалось ранее @Jon, определения полей должны быть одинаковыми (обратите внимание на подтип unsigned).

7
задан syb0rg 16 March 2013 в 02:08
поделиться

2 ответа

У вас есть более одного Scanner, которые вы закрываете, что закрывает базовый InputStream, поэтому другой Scanner больше не может читать из тех же результатов InputStream и NoSuchElementException.

Для консольных приложений используйте один Scanner для чтения из System.in.

14
ответ дан syb0rg 4 September 2018 в 08:59
поделиться

Поскольку вы печатаете одно и то же сообщение во всех трех местах, где исключено исключение, трудно сказать с какой-либо определенностью, что происходит:

  • Используйте printStackTrace(), чтобы узнать где происходит исключение
  • Не поймайте Exception, как это. Поймите исключения, которые вы ожидаете, и что ваш код предназначен для обработки. Если вы поймаете Exception, вы можете поймать всевозможные неожиданные исключения (NPE, конец файла и т. Д.) ... и неправильно сообщать о них как «Недопустимый формат».
3
ответ дан Stephen C 4 September 2018 в 08:59
поделиться
Другие вопросы по тегам:

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