База Hintsage

Программирование Java

Язык Java, JVM и экосистема серверной разработки.

Темы раздела

Выберите подраздел

Практика

Вопросы: Программирование Java

Практическая ситуация: определите, какое исключение увидит вызывающий код после выполнения метода run.

class Demo {
    static class Resource implements AutoCloseable {
        @Override
        public void close() {
            throw new IllegalStateException("close");
        }
    }

    static void run() {
        try (Resource resource = new Resource()) {
            throw new IllegalArgumentException("body");
        }
    }
}
Программирование JavaJava CoreJava-разработчик серверных приложений

Разберите последствия выполнения метода: какое исключение попадёт в catch и где окажется ошибка закрытия ресурса?

class Demo {
    static class R implements AutoCloseable {
        void use() { throw new IllegalStateException("body"); }
        @Override public void close() {
            throw new IllegalArgumentException("close");
        }
    }

    public static void main(String[] args) {
        try (R r = new R()) {
            r.use();
        } catch (Exception e) {
            System.out.println(e.getClass().getSimpleName());
            System.out.println(e.getSuppressed().length);
        }
    }
}
Программирование JavaИсключенияJava-разработчик серверных приложений

Показано 361380 из 403