Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ADT中的Java未报告异常_Java_Exception - Fatal编程技术网

ADT中的Java未报告异常

ADT中的Java未报告异常,java,exception,Java,Exception,对于一个类,我必须构建一个队列ADT,并使用该ADT创建一个执行基本加法/减法的应用程序。问题是,当我尝试调用与异常链接的队列方法时,我会得到“错误:未报告的异常FullCollectionException;必须捕获或声明为抛出” 下面是我的代码的样子 public void insert(Object element) throws FullCollectionException { if(isFull()) throw new FullColl

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

我尝试了几种不同的方法,但似乎都不管用

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

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来编写代码,系统将提示您添加此类异常处理语句

找到了答案。我把异常作为我任务的一部分,我只是让它们成为异常的子对象,而不是RuntimeException。谢谢你的帮助:))