演習ファイル:
QueueFullException.java
QueueEmptyException.java
FixedQueue.java
QExcDemo.java
このプロジェクトでは、キュー クラス (Queue) に対して 2 つのカスタム例外が作成されました。これらは、満杯のキューと空のキューのエラー状態を示します。これらの例外は、put() メソッドと get() メソッドによって使用されます。
キューの例外:
FixedQueue クラスの実装:
例外と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 サイトの他の関連記事を参照してください。