我只是想知道为什么我们在自己创建的自定义异常中调用super。
public class MyException extends Exception
{
public MyException(String message)
{
super(message);
}
}
这里调用super(message)
的用途是什么答案 0 :(得分:13)
由于派生类始终将基类作为模板,因此必须初始化基类作为构造派生对象的第一步。默认情况下,如果没有进行super
调用,Java将使用默认(无参数)构造函数来创建基类。如果你想要使用不同的构造函数,你必须使用super
传递你想要的参数并调用正确的构造函数。
对于自定义异常,通常使用super
初始化异常的错误消息;通过将消息传递给基类构造函数,基类将负责正确设置消息的工作。
答案 1 :(得分:2)
它只是调用基类构造函数:
Exception(String message)
使用指定的详细消息构造一个新的异常。
答案 2 :(得分:2)
由于:
public MyException(String message)
{
//super() implicit call, how to set message???
}
所以你需要一个超级(消息)调用来设置消息。
答案 3 :(得分:1)
super的用法是调用super(base,parent)类的构造函数,该类恰好是Exception
类