В блоке finally я могу сказать, какое исключение было сгенерировано?

В блоке finally я могу сказать, какое исключение было сгенерировано?

Я понимаю, что мы можем проверить в блоке finally, если было сгенерировано исключение.

2 ответа

Я не могу представить себе ситуацию, в которой это когда-либо будет разумно, но вы можете попробовать что-то вроде этого:

class Main {
    public static void throwsException() throws Exception {
        throw new Exception();  
    }

    public static void main(String[] args) {
        Exception caughtException = null;

        try {
            throwsException();
        }
        catch (Exception e) {
            caughtException = e;
            e.printStackTrace();
        }
        finally {
            System.out.println(caughtException);
        }
    }
}

поймать блок и, наконец, 2 разных прицелов. Исключение, пойманное в блоке catch, невидимо для блока finally. Вы можете использовать ответ Александра, чтобы напечатать исключение в блоке finally.

Другие вопросы по тегам