Fichiers d'exercices :
QueueFullException.java
QueueEmptyException.java
FixeQueue.java
QExcDemo.java
Dans ce projet, deux exceptions personnalisées ont été créées pour la classe de file d'attente (Queue), qui indiquent les conditions d'erreur pour la file d'attente pleine et la file d'attente vide. Ces exceptions sont utilisées par les méthodes put() et get().
Exceptions de file d'attente :
Implémentation de la classe FixedQueue :
Exceptions et code de classe 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++]; } }
Test avec QExcDemo :
La classe QExcDemo simule l'utilisation de la file d'attente :
Insère des éléments jusqu'à dépasser la limite, en lançant QueueFullException.
Il essaie de supprimer des éléments d'une file d'attente vide en lançant 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); } } }
Interface ICharQ mise à jour :
ICharQ contient désormais des exceptions levées dans les méthodes put() et get(), reflétant les exceptions levées par FixedQueue.
public interface ICharQ { void put(char ch) throws QueueFullException; char get() throws QueueEmptyException; }
Résultat attendu :
Le programme affiche des messages indiquant le succès des insertions et suppressions d'éléments, ainsi que des messages d'erreur :
La file d'attente est pleine. La taille maximale est de 10 lorsque la file d'attente est pleine.
La file d'attente est vide. lorsque vous essayez de supprimer un élément d'une file d'attente vide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!