#исключения #циклы #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; }
Комментариев нет:
Отправить комментарий