Java中的RuntimeException扩展

时间:2013-10-15 22:11:43

标签: java exception-handling

我在Java中添加了一个对EmptyStackException的扩展,以显示错误消息。我已将此文件放在同一个包中,但我收到错误:

"The constructor EmptyStackException(String) is undefined"

EmptyStackException.java:

package mypackage;

public class EmptyStackException extends RuntimeException{
  private static final long serialVersionUID = 1L;
  public EmptyStackException(String message){
      super(message);
   }
}

应该是非常简单的事情。但我卡住了! 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

您已定义了自己的EmptyStackException,但Java提供了java.util.EmptyStackExceptionits only constructor takes no arguments,这意味着您认为使用自己的EmptyStackException的代码实际上正在使用{{ 1}}。

要扩展java.util.EmptyStackException,请定义自己的:

EmptyStackException

在构造函数中,调用public MyEmptyStackExceptionWithMessage extends EmptyStackException { 并存储您自己的消息。

答案 1 :(得分:1)

您似乎正在尝试用自己的一个替换现有的EmptyStackException类;这总是一个非常糟糕的想法(并且在许多Java环境中,不可能。)可能会出现编译错误,因为尽管您正在尝试构造类的实例,但Java编译器实际上正在尝试实例化{{1}确实没有单参数构造函数。基本上,如果您需要定义自己的异常类型,请选择平台类尚未使用的名称 - 您将避免很多麻烦。如果您的目标是真正替换Java API类:放弃。它不会发生。