try{
output.format("%d %s %s %.2f%n", input.nextInt(),
input.next(),input.next(),input.nextDouble());
} catch(FormatterClosedException formatterClosedException){
System.err.println("Error writing to file. Terminating.");
break;
} catch(NoSuchElementException noSuchElementException){
System.err.println("Invalid input. Please try again.");
input.nextLine();
}
Метод format(String format, Object... args)
в Formatter
классе бросает два exception
: IllegalFormatException
и FormatterClosedException
, но в моей книге выше код ловит NoSuchElementException
и FormatterClosedException
.Должен ли я поймать все исключения, которые выбрасываются методом?
- Почему код поймал
NoSuchElementException
, но не поймалIllegalFormatException
? - Как мы можем узнать, нужно ли нам поймать
NoSuchElementException
, если он даже не указан в методе форматирования класса() метода в онлайн documentation?
попробуйте прочитать тему на исключения, например: http://stackoverflow.com/questions/7586305/how-to-know-which-exception-is-thrown – usman
[ Прочитайте это] (https://docs.oracle.com/javase/7/docs/api/java/util/NoSuchElementException.html) вы поймете NoSuchElementException –
Я дал вам объяснение в конце ответа. Это «Сканер», который может выбросить «NoSuchElementException». – xenteros