Когда я должен использовать Throwable.getSuppressed () и addSuppressed () в моем коде? - PullRequest
0 голосов
/ 28 сентября 2019

Я тренируюсь с попыткой использования ресурсов, чтобы мои методы могли это понять.Это мой пример метода.

public void a(File f) throws FileNotFoundException, IOException {
    try (FileInputStream fis = new FileInputStream(f)) { // suppose FileNotFoundException occurs here
        byte[] buffer = new byte[7];
        fis.read(buffer); // suppose IOException occurs here
    }
}

Теперь предположим, что исключение возникает как FileNotFoundException для нового FileInputStream () и IOException для fis.read ().

это использование моего метода в другом классе.

try {
            a(new File(""));
        } catch (IOException ex) {
            ex.printStackTrace();

            Throwable[] suppressedExceptions = ex.getSuppressed();
            if (suppressedExceptions.length > 0)
                for (Throwable exception : suppressedExceptions)
                    System.err.println(exception.toString());
        }

Как в предыдущем коде.Должен ли я всегда использовать метод getSuppressed() при использовании try-with-resources?И когда, где и как я должен использовать метод addSuppressed()?

...