Heim > Java > javaLernprogramm > Hauptteil

Versuchen Sie Folgendes: Fügen Sie Ausnahmen zur Queue-Klasse hinzu

Patricia Arquette
Freigeben: 2024-10-30 23:15:30
Original
666 Leute haben es durchsucht

Tente Isto  Adicione exceções à classe Queue

Ü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:

  • QueueFullException: Ausnahme wird ausgelöst, wenn versucht wird, ein Element in eine volle Warteschlange einzufügen.
  • Die Klasse enthält ein Feld zum Speichern der maximalen Warteschlangengröße und überschreibt die toString()-Methode, um eine benutzerdefinierte Nachricht anzuzeigen.
  • QueueEmptyException: Ausnahme wird ausgelöst, wenn versucht wird, ein Element aus einer leeren Warteschlange zu entfernen.
  • Die Klasse überschreibt auch toString(), um eine Nachricht anzuzeigen, wenn die Warteschlange leer ist.

FixedQueue-Klassenimplementierung:

  • Die FixedQueue-Klasse wird so geändert, dass sie QueueFullException und QueueEmptyException auslöst, wenn Fehlerbedingungen auftreten.
  • Dazu enthalten put() und get() eine throws-Klausel in ihren Signaturen.
  • Durch das Auslösen von Ausnahmen ermöglichen Sie dem aufrufenden Code, Fehler effizienter zu behandeln.

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;
  }
}

Nach dem Login kopieren

QueueEmptyException.java:

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

Nach dem Login kopieren

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++];
  }
}

Nach dem Login kopieren

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);
    }
  }
}

Nach dem Login kopieren

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;
}

Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!