Я обрабатываю в первый раз Исключения на Java, и я хочу знать, если это будет хорошим способом.Добавить подписи подписи во всех методах
public static void main(String[] args) throws FileNotFoundException {
submethod();
}
static void submethod() throws FileNotFoundException {
Scanner scan = new Scanner(new File("file.txt"));
while (scan.hasNextLine()) {
// do somethig...
}
}
То, что звучит странно для меня это явное объявление throws FileNotFoundException
и в методе main
, иначе компилятор сообщает:
error: unreported exception FileNotFoundException; must be caught or declared to be thrown
Я хотел бы знать, если я делаю это неправильно. В более сложном проекте, где вам нужно поймать гораздо больше исключений, это станет очень грязным. Это лучшая практика для обработки исключений? И почему мне нужно объявить об этом в обоих методах?
Вам нужно объявить об этом в обоих методах, потому что оба метода могут выбрасывать это исключение. Вы правы, однако, что это может вызвать раздутие подписи метода. Продолжается дискуссия по вопросу о проверенных и непроверенных Исключениях, которые происходят в течение некоторого времени. – azurefrog
'throws' в вашем' submethod() 'означает, чтобы вызывающий блок знал, что существует исключение, которое не было обнаружено. В вашем методе 'main()' вам необходимо окружить вызов 'submethod()' в блоке 'try-catch'. 'throws' на вашем' main() 'методе почти никогда не бывает хорошей идеей (возможно, просто никогда). –
@DrewKennedy Спасибо за подсказку. Этот способ звучал неправильно и для меня. – fillobotto