Übungsdateien:
QueueFullException.java
QueueEmptyException.java
FixedQueue.java
QExcDemo.java
In diesem Projekt wurden zwei benutzerdefinierte Ausnahmen für die Warteschlangenklasse (Queue) erstellt, die Fehlerbedingungen für eine volle Warteschlange und eine leere Warteschlange anzeigen. Diese Ausnahmen werden von den Methoden put() und get() verwendet.
Warteschlangenausnahmen:
FixedQueue-Klassenimplementierung:
Ausnahmen und FixedQueue-Klassencode:
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++]; } }
Testen mit QExcDemo:
Die QExcDemo-Klasse simuliert die Verwendung der Warteschlange:
Fügt Elemente ein, bis das Limit überschritten wird, und löst eine QueueFullException aus.
Es versucht, Elemente aus einer leeren Warteschlange zu entfernen, indem es eine QueueEmptyException auslöst.
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); } } }
Aktualisierte ICharQ-Schnittstelle:
ICharQ enthält jetzt Ausnahmen in den Methoden put() und get(), die die von FixedQueue ausgelösten Ausnahmen widerspiegeln.
public interface ICharQ { void put(char ch) throws QueueFullException; char get() throws QueueEmptyException; }
Erwartete Ausgabe:
Das Programm zeigt Meldungen über den Erfolg des Einfügens und Entfernens von Elementen sowie Fehlermeldungen an:
Die Warteschlange ist voll. Die maximale Größe beträgt 10, wenn die Warteschlange voll ist.
Die Warteschlange ist leer. beim Versuch, ein Element aus einer leeren Warteschlange zu entfernen.
Das obige ist der detaillierte Inhalt vonVersuchen Sie Folgendes: Fügen Sie Ausnahmen zur Queue-Klasse hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!