ADT 中的 Java 未报告异常



对于一个类来说,我必须构建一个队列 ADT 并使用该 ADT 创建一个执行基本加法/减法的应用程序。问题是,当我尝试调用具有链接到它们的异常的队列方法时,我收到" 错误:未报告的异常 FullCollectionException;必须被抓住或宣布投掷"。

这是我的代码的样子。

   public void insert(Object element) throws FullCollectionException
   {
       if(isFull())
          throw new FullCollectionException("Queue");
       else
       {
         queue[count] = element;
         count++;
       }
    }  

isFull 方法只是做一个简单的比较,看看数组是否满足了它的长度。那么使用它的类如下所示。

public class Stocks
{
   public static void main(String a[])
   {
       Queue q = new Queue();
       StackObject so = new StackObject();
       q.insert(10);
       q.insert(30);
   } 
 }

我尝试了几种不同的东西,但似乎都没有奏效。

除非FullCollectionExceptionRuntimeException的孩子(未选中),否则您将无法执行此操作。试试这个:

try {
  q.insert(10);
  q.insert(30);
} catch (FullCollectionException fce) {
  // Handle exception
}
您需要

声明main()可能会引发该异常,如下所示:

public static void main(String a[]) throws FullCollectionException
{
   Queue q = new Queue();
   StackObject so = new StackObject();
   q.insert(10);
   q.insert(30);
}

或者,您可以改为添加catch块,但只有在您有从异常中恢复的实际计划时,才应该这样做。否则,实际上最好让你的程序失败,而不是默默地将问题扫到地毯下。

你需要

在main方法中显式抛出或捕获FullCollectionException

PS:如果使用 Eclipse 或 Netbeans 等 IDE 编写代码,系统将提示您添加此类异常处理语句。

通了。我把异常作为作业的一部分,我只是让它们成为 Exception 而不是 RuntimeException 的子项。感谢您的所有帮助:))

最新更新