#исключения #циклы #java
Здравствуйте. Имеется вот такой цикл.
String s;
while ((s = in.readLine()) != null) {
System.out.println(s);
}
Метод readLine() бросает IOException. Я могу конечно обернуть весь цикл в try-catch,
но тогда при возникновении исключения цикл прервётся. Могу в методе, в котором находится
этот код дописать throws IOException, но всё равно цикл прервётся. А как сделать, чтобы
не прерывался? Неужели только так?
String s;
while (true) {
try {
s = in.readLine();
} catch (IOException e) {
System.out.println(e);
}
if(s == null) {break;}
System.out.println(s);
}
Это же как-то не красиво..
Ответы
Ответ 1
Да, только так. Если вас смущает конструкция try/catch внутри цикла, можете вынести её в отдельный метод, не бросающий исключений, и глушить исключения там: public void doSth() { // ваш код String s; while (true) { s = readNextLine(in); if(s == null) {break;} System.out.println(s); } // ваш код } private String readNextLine(Reader in) { String s; try { s = in.readLine(); } catch (IOException e) { System.out.println(e); } return s; }
Комментариев нет:
Отправить комментарий