Java: супер должен быть первым в конструкторе - PullRequest
0 голосов
/ 26 февраля 2019

Я знаю, что об этом уже спрашивали, но их ситуация сильно отличается от моей.

class Derived extends Base {
    public Derived()
    {
        try {
           super();
        } catch (Exception e) {
            ....
        }
    }
}

Проблема в том, как мне обойти проблему, что super должен быть первым - мне нужно обернуть егоблок попытка / исключение, и он не скомпилируется.

Ни один из более ранних ответов не касался проблем с попыткой / кроме как в связи с этой проблемой, поэтому не говорите мне, что на этот вопрос уже был дан ответ.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Если вы можете - попробуйте использовать композицию.У Make Derived есть поле типа Base (вместо его расширения) и оберните вызов конструктора Base в блок try-catch внутри конструктора Derived

0 голосов
/ 26 февраля 2019

Вы просто не можете этого сделать, заставить конструктор вызвать исключение и перехватить его снаружи.

...