0

クラスの場合、キュー 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

4 に答える 4

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ますが、例外から回復する実際の計画がある場合にのみ行う必要があります。それ以外の場合は、黙って問題を覆い隠すよりも、プログラムを失敗させた方が実際には良いのです。

于 2013-10-22T22:44:44.770 に答える
0

FullCollectionExceptionメイン メソッドで明示的にスローまたはキャッチする必要があります。

PS: Eclipse や Netbeans などの IDE を使用してコードを記述する場合、そのような例外処理ステートメントを追加するように求められます。

于 2013-10-22T22:45:25.777 に答える
0

理解した。割り当ての一部として例外を作成し、それらを RuntimeException ではなく Exception の子にしました。ご助力いただきありがとうございます :))

于 2013-10-22T23:10:09.150 に答える