Главная » Java » Блок try/catch

0

Для  обработки ошибок в Java могут быть использованы пять ключевыхслов:  try, catch, finally, throw и  throws. После одного блока try можно поставить несколько блоков catch,если  предполагается, что может произойти более чем одна ошибка. Например,  когда программа пытается прочитать файл, его может не оказаться     на      месте,      и      возникнет      исключение FileNotFoundException. Или  же, если файл  найден,  но программа продолжает  считывать   после   конца   этого  файла,   вы получите исключение  EOFException.Следующий фрагмент кода выведет сообщение на русском языке, если программа  не сможет найти файл со счётом игры  или достигнет конца файла.  Для  других  ошибок  чтения  код  выведет  сообщение  Проблема при чтении файла и техническое описание проблемы. public void getScores(){

try{

fileScores.read();

System.out.println("Счёт игры успешно загружен");

}catch(FileNotFoundException e){ System.out.println("Не найден файл Scores");

}catch(EOFException e1){ System.out.println("Достигнут конец файла");

}catch(IOException e2){

System.out.println("Проблема при чтении файла " +

e2.getMessage());

}

}Если  выполнение  метода  read()  прервется,  программа  перепрыгнет через  строчку   с   вызовом   println()   прямо   в   блок  catch   для подходящей  ошибки.   Если   такой   блок найден,   то   выполнится соответствующий println(), а если подходящий блок catch найти не удастся,  метод  getScores()  перенаправит  это  исключение  методу, его вызвавшему.Если вы пишете несколько блоков catch, вам следует располагать  их в порядке,    согласно  тому,  как   соответствующие  исключения унаследованы  друг от друга. Например, так  как  EOFException — это подкласс IOException, нужно расположить блок catch для подкласса вначале.  Если  же первым  поместить  catch  для  IOException, тогда программа никогда не достигнет FileNotFound или EOFException, так как первый catch будет их перехватывать.Начиная с Java 7, можно отлавливать сразу несколько исключений в одном

блоке catch:

public void getScores(){

try{

fileScores.read();

В  случае ошибки работы с файлом,  главный   метод обработает  её,   а   метод e1.getMessage() выведет  сообщение  Дорогой друг…

Источник: Java  Programming for Kids, Parents and Grandparents by Yakov Fain

По теме:

  • Комментарии