超级调用自定义异常

时间:2012-12-17 04:49:41

标签: java exception constructor

我只是想知道为什么我们在自己创建的自定义异常中调用super。

public class MyException extends Exception 
{ 
   public MyException(String message)         
  {  
    super(message);        
  }      
}

这里调用super(message)

的用途是什么

4 个答案:

答案 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