В задаче указано: считать два числа в статик блоке и явно закрыть поток.
Попробовал обойтись без try-with, однако, какие бы ухищрения не придумывал,
блок второй try, внутри finally первого блока не регистрирует ошибок.
Собсна, не понимаю почему. Если есть знающие люди, растолкуйте, будьте любезны.
Заранее - благодарю. Вырезку своего кода прилагаю:
![]()
public class Solution {
public static int A;
public static int B;
static {
BufferedReader reader = null;
Exception exc = null;
try {
reader = new BufferedReader(new InputStreamReader(System.in));
String a = reader.readLine();
String b = reader.readLine();
A = Integer.parseInt(a);
B = Integer.parseInt(b);
} catch (Exception e) {
exc = e;
} finally {
try {
reader.close();
reader.close();
reader.close();
reader.close();
reader.close();
/** Не регистрирует вторичное исключение, как бы я не пытался **/
if (exc != null)
exc.printStackTrace();
} catch (Exception e) {
if (exc != null) {
// e.addSuppressed(exc);
exc.printStackTrace();
e.printStackTrace();
} else {
e.printStackTrace();
}
}
}
}
}