java:super必须是构造函数中的第一个

问题描述 投票:2回答:2

我知道之前有人问过,但他们的情况与我的情况完全不同。

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

问题是如何解决super必须首先出现的问题 - 我需要将它包装在try / except块中并且不能编译。

之前的答案没有涉及到与此问题相关的try / except问题,所以不要告诉我这个问题已经得到了回答。

java try-catch super
2个回答
5
投票

您根本无法做到这一点,让构造函数抛出异常并将其捕获到外部。


1
投票

如果你可以尝试使用成分。 Make Derived有一个Base类型的字段(而不是扩展它)并在Derived的构造函数中的try-catch块中包装对Base的构造函数的调用

© www.soinside.com 2019 - 2024. All rights reserved.