Страницы

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

среда, 27 февраля 2019 г.

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

Здравствуйте. Имеется вот такой цикл. 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); } Это же как-то не красиво..


Ответ

Да, только так. Если вас смущает конструкция 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; }

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

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