ADT中的Java未报告异常

时间:2013-10-22 22:41:53

标签: java exception

好吧,对于一个类,我必须构建一个队列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);
   } 
 }

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

4 个答案:

答案 0 :(得分:0)

除非FullCollectionExceptionRuntimeException的子项(未经检查),否则您将无法执行此操作。试试这个:

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

答案 1 :(得分:0)

您需要声明main()可能会抛出该异常,如下所示:

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

   q.insert(10);
   q.insert(30);
}

或者您可以添加catch块,但是如果您有实际计划从异常中恢复,则应该只执行此操作。否则,让你的程序失败而不是默默地扫除地毯下的问题实际上更好。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

想出来。我将异常作为我的任务的一部分,我让他们成为Exception的孩子,而不是RuntimeException。谢谢你的帮助:))

相关问题