如何抛出StackOverflowException

时间:2015-11-07 01:01:18

标签: java arrays try-catch override

我目前正在制作一个有界阵列堆栈。此方法将大于存储容量的数组抛出到StackOverflowException,除了我不断收到" throws StackOverflowException部分的错误消息

public void push(T item) throws StackOverflowException {
    //push item onto the stack,
    if (isFull()) throw new StackOverflowException();
    else {
        top++;
        storage[top] = item;
    }
}

错误讯息:

  

错误:(52,17)java:push(T)中的com.ld.BoundedArrayStack不能   push(T)覆盖方法中的实现com.ld.StackADT不会抛出   com.ld.StackOverflowException

其他消息:

  push(T)com.Id.BoundedArrayStack冲突中的

push(T)   com.Id.StackADT;重写方法不抛出   com.Id.StackOverflowException

我不明白这是什么问题。

1 个答案:

答案 0 :(得分:3)

从您的错误消息中,您的超类StackADT定义push不要抛出StackOverflowException,因此任何覆盖此方法的行都不能抛出StackOverflowException

你可以:

  • StackOverflowException成为RuntimeException,随时都可以抛出。您不必在throws子句或
  • 中声明它
  • push中声明StackADT方法,使其throws成为StackOverflowException