Здравствуйте. Имеется вот такой цикл. 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;
}
Комментариев нет:
Отправить комментарий