簡體   English   中英

ADT中的Java未報告異常

[英]Java Unreported Exception in ADT

好的,對於一個類,我必須構建一個隊列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。 感謝你的幫助 :))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM