Java 需要为EmptyStack创建新的RunTimeException

Java 需要为EmptyStack创建新的RunTimeException,java,exception,runtime,Java,Exception,Runtime,因此,我的任务听起来可能很简单,但它让我感到困惑。 我在互联网上浏览过代码,但我无法掌握。我也不能 抓紧老师贴的幻灯片。这是对我的要求 创建名为EmptyStackException的新运行时异常类型 然而,我不知道如何制作方法、类、变量或任何需要制作的东西来满足需求。 我有几个类是DynamicCarrayStack和LinkedStack的实现。堆栈的接口 任何指点都会非常有用 谢谢 Mjall2创建一个名为EmptyStackException的新运行时异常类型 创建类型是由 public

因此,我的任务听起来可能很简单,但它让我感到困惑。 我在互联网上浏览过代码,但我无法掌握。我也不能 抓紧老师贴的幻灯片。这是对我的要求

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

然而,我不知道如何制作方法、类、变量或任何需要制作的东西来满足需求。 我有几个类是DynamicCarrayStack和LinkedStack的实现。堆栈的接口

任何指点都会非常有用

谢谢

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

创建类型是由

public class EmptyStackException extends RuntimeException { ... }
现在,如果我们知道在这个新类型(又称a类)中放什么就好了。 通常我们查看超类中的方法,并覆盖那些需要不同处理的方法。下面我已经重写了其中的一些类,但是委托给了现有的类。如果您不需要对行为进行任何更改,则无需执行此操作

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);
      }
    }

听起来您可能想了解Java。看看吧,尤其是这张关于


简单地说,异常是一种特殊类型的对象,表示代码正常操作之外的事件,导致被颠覆。例如,
ArrayIndexOutOfBoundsException
表示代码试图索引到数组中不存在的位置,例如-1

由于异常与bug的关联,对于新手程序员来说,异常通常具有不好的含义。但由于Java是可扩展的,所以您可以扩展以创建自己的自定义异常类型,这对于调试和代码清晰性非常有用。要在代码执行时引发自定义异常,必须

  • 已定义自定义异常
  • 检测异常情况,以及
  • 抛出异常
  • 定义自定义
    RuntimeException
    的简单方法是定义如下类:

    public EmptyStackException extends RuntimeException {
        // customize error messages if necessay
    }
    
    然后您将检测并抛出异常,如:

    if (/** stack is empty */) {
        throw new EmptyStackException();
    }
    

    这些只是基础。您还可以定义自定义异常。希望这有帮助

    为此,必须扩展类RuntimeException

    Java中有两种类型的异常:未检查异常和已检查异常。运行时异常属于第二种类型。这意味着不需要显式地处理和声明它们

    通常,在编写自定义异常时使用选中的异常。这是通过扩展类
    Exception
    来实现的。我没有看到创建自定义
    运行时异常的任何用例

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

    public class EmptyStackException extends RuntimeException{
    
       public EmptyStackException(String message){
          super(message);
       }
    
    }
    
    在源代码中,您可以通过以下语句使用它:

    throw new EmptyStackException("Stack was Empty, can't pop");
    

    有关异常的更多信息,我建议您使用以下方法调用super(),调用RuntimeException的构造函数,它会引发运行时异常!调用super()应该构造一个RuntimeException,它不会抛出异常。对,但是当我们想要抛出异常时,抛出新的EmptyStackException();我相信这将抛出一个runtimeexception?抛出新的EmptyStackException();我会扔一个是的。但是,正如我在回答中指出的,在堆栈为空的情况下,使用RuntimeException作为自定义异常是非常少见的。为了编写自定义的、已检查的异常,您应该扩展异常。区别是什么?我只是看到您的代码有一条消息