需要为EmptyStacks创建一个新的RunTimeException

Mja*_*ll2 9 java runtime exception

所以我的任务可能听起来很简单,但令我难以置信.我查看了互联网上的代码,但我无法掌握.我也不能掌握老师发布的幻灯片.这就是我的要求.

创建一个名为EmptyStackException的新运行时异常类型.

但是我不知道如何制作方法,类,变量或任何需要制作的东西以满足要求.我有几个类是DynamicArrayStack和LinkedStack的实现.Stack的接口.

任何指针都会非常有用.

谢谢

Mjall2

Jim*_*Jim 18

创建一个名为EmptyStackException的新运行时异常类型.

创建类型是由

public class EmptyStackException extends RuntimeException { ... }
Run Code Online (Sandbox Code Playgroud)

现在,只要我们知道在这个新类型(aka类)中放入什么.通常我们会查看超类中的方法并覆盖那些需要不同处理的方法.下面我已经覆盖了其中的一些,但委托回现有的课程.如果您不需要对行为进行任何更改,则无需执行此操作.

public class EmptyStackException extends RuntimeException {
      public EmptyStackException() {
          super();
      }
      public EmptyStackException(String s) {
          super(s);
      }
      public EmptyStackException(String s, Throwable throwable) {
          super(s, throwable);
      }
      public EmptyStackException(Throwable throwable) {
          super(throwable);
      }
    }
Run Code Online (Sandbox Code Playgroud)

  • 调用super()应该*构造*一个RuntimeException,它不会抛出*异常. (2认同)

Mat*_*hew 5

为此,您必须扩展RuntimeException类.

Java中有两种类型的异常:未经检查和已检查的异常.RuntimeExceptions是第二种类型.这意味着它们不需要显式处理和声明.

通常,在编写自定义异常时使用已检查的异常.这是通过扩展课程来完成的Exception.我没有看到任何用于创建自定义的用例RuntimeException.

无论如何,以下代码显示了如何编写自己的RuntimeException:

public class EmptyStackException extends RuntimeException{

   public EmptyStackException(String message){
      super(message);
   }

}
Run Code Online (Sandbox Code Playgroud)

在源代码中,您可以通过以下语句使用它:

throw new EmptyStackException("Stack was Empty, can't pop");
Run Code Online (Sandbox Code Playgroud)

有关异常的更多信息,我建议您使用以下教程