これを試してください Queue クラスに例外を追加します

Patricia Arquette
リリース: 2024-10-30 23:15:30
オリジナル
666 人が閲覧しました

Tente Isto  Adicione exceções à classe Queue

演習ファイル:
QueueFullException.java
QueueEmptyException.java
FixedQueue.java
QExcDemo.java

このプロジェクトでは、キュー クラス (Queue) に対して 2 つのカスタム例外が作成されました。これらは、満杯のキューと空のキューのエラー状態を示します。これらの例外は、put() メソッドと get() メソッドによって使用されます。

キューの例外:

  • QueueFullException: 満杯のキューに要素を挿入しようとすると例外がスローされます。
  • このクラスには、最大キュー サイズを格納するフィールドが含まれており、toString() メソッドをオーバーライドしてカスタム メッセージを表示します。
  • QueueEmptyException: 空のキューから要素を削除しようとすると例外がスローされます。
  • このクラスは、キューが空のときにメッセージを表示するために toString() もオーバーライドします。

FixedQueue クラスの実装:

  • FixedQueue クラスは、エラー条件が発生した場合に QueueFullException および QueueEmptyException をスローするように変更されています。
  • このため、put() と get() のシグネチャに throws 節が含まれています。
  • 例外をスローすることで、呼び出し元のコードがより効率的にエラーを処理できるようになります。

例外とFixedQueueクラスコード:
QueueFullException.java

public class QueueFullException extends Exception {
  int size;
  QueueFullException(int s) { size = s; }
  public String toString() {
    return "\nQueue is full. Maximum size is " + size;
  }
}

ログイン後にコピー

QueueEmptyException.java:

public class QueueEmptyException extends Exception {
  public String toString() {
    return "\nQueue is empty.";
  }
}

ログイン後にコピー

FixedQueue.java:

class FixedQueue implements ICharQ {
  private char q[];
  private int putloc, getloc;

  public FixedQueue(int size) {
    q = new char[size];
    putloc = getloc = 0;
  }

  public void put(char ch) throws QueueFullException {
    if (putloc == q.length)
      throw new QueueFullException(q.length);
    q[putloc++] = ch;
  }

  public char get() throws QueueEmptyException {
    if (getloc == putloc)
      throw new QueueEmptyException();
    return q[getloc++];
  }
}

ログイン後にコピー

QExcDemo によるテスト:
QExcDemo クラスはキューの使用をシミュレートします:
制限を超えるまで要素を挿入し、QueueFullException をスローします。
QueueEmptyException.
をスローして、空のキューから要素を削除しようとします。

class QExcDemo {
  public static void main(String args[]) {
    FixedQueue q = new FixedQueue(10);
    char ch;
    int i;
    try {
      for(i=0; i < 11; i++) {
        System.out.print("Attempting to store : " + (char) ('A' + i));
        q.put((char) ('A' + i));
        System.out.println(" - OK");
      }
    } catch (QueueFullException exc) {
      System.out.println(exc);
    }

    try {
      for(i=0; i < 11; i++) {
        System.out.print("Getting next char: ");
        ch = q.get();
        System.out.println(ch);
      }
    } catch (QueueEmptyException exc) {
      System.out.println(exc);
    }
  }
}

ログイン後にコピー

更新された ICharQ インターフェース:
ICharQ には、FixedQueue によってスローされた例外を反映して、put() メソッドと get() メソッドにスロー例外が含まれるようになりました。

public interface ICharQ {
  void put(char ch) throws QueueFullException;
  char get() throws QueueEmptyException;
}

ログイン後にコピー

期待される出力:
プログラムは、要素の挿入と削除が成功したことを示すメッセージと、エラー メッセージを表示します。
キューがいっぱいです。キューがいっぱいの場合、最大サイズは 10 です。
キューが空です。空のキューから要素を削除しようとしたとき。

以上がこれを試してください Queue クラスに例外を追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!