Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как продолжить выполнение цикла, если словили исключение?

#исключения #циклы #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; }

Комментариев нет:

Отправить комментарий