Оператор return в catch и finally

Оператор return в catch и finally

Если и catch, и finally содержат оператор return, то вызывающий метод получит значение из блока finally.


class A {
    String getString() {
        String s = "String";
        try {
            byte[] b = {1, 2};
            System.out.println(b[5]);
        } catch (Exception e) {
            return s + " from catch";
        } finally {
            return s + " from finally";
        }
    }

    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.getString()); // String from finally
    }
}
Исключения