#java
#java
Вопрос:
По какой-то причине, когда я использую try
и перехватываю с помощью этого сканера, он мгновенно переходит к catch
, даже не принимая входные данные внутри try {}
Предполагается, что этот код проверяет, является ли ввод другим типом, отличным от int
Кажется, я забыл уточнить, что код работает, когда я удаляю try
и catch
int mapsehen;
try {
mapsehen = scanner.nextInt();
if (mapsehen == 1) {
DrawMap();
}
} catch (Exception e) {
System.out.println("Something went wrong.");
}
Комментарии:
1. является ли DrawMap() статической функцией?
2. А также импортировал сканер
3. рассмотрите возможность регистрации и чтения того, какое исключение перехвачено, вместо того, чтобы пытаться угадать.
4. Можете ли вы показать , как вы определяете
scanner
?5. «… вероятно, действительно глупая ошибка …» — Это ваши настоящие ошибки: 1)
catch (Exception e) {
— Ошибка. Не делайте этого. Перехватывайте исключения, которые вы ожидаете, а не все исключения. 2)System.out.println("Something went wrong.");
— Ошибка. Вы отбрасываете всю информацию о возникшем исключении. Итак, вам (и другим) остается только догадываться, что это было. Распечатайте трассировку стека или зарегистрируйте исключение.
Ответ №1:
Scanner scanner = new Scanner(System.in); // Create a Scanner object