Fail latihan:
QueueFullException.java
QueueEmptyException.java
FixedQueue.java
QExcDemo.java
Dalam projek ini, dua pengecualian tersuai telah dibuat untuk kelas baris gilir (Baris gilir), yang menunjukkan keadaan ralat untuk baris gilir penuh dan baris gilir kosong. Pengecualian ini digunakan oleh kaedah put() dan get().
Pengecualian Baris:
Pelaksanaan Kelas Gilir Tetap:
Pengecualian dan Kod Kelas Gilir Tetap:
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++]; } }
Ujian dengan QExcDemo:
Kelas QExcDemo mensimulasikan penggunaan baris gilir:
Memasukkan elemen sehingga melebihi had, melontar QueueFullException.
Ia cuba mengalih keluar elemen daripada baris gilir kosong dengan membuang 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); } } }
Antara Muka ICharQ yang dikemas kini:
ICharQ kini mengandungi pengecualian lontaran dalam kaedah put() dan get(), mencerminkan pengecualian yang dilemparkan oleh FixedQueue.
public interface ICharQ { void put(char ch) throws QueueFullException; char get() throws QueueEmptyException; }
Keluaran Jangkaan:
Program ini memaparkan mesej yang menunjukkan kejayaan memasukkan dan mengalih keluar elemen, serta mesej ralat:
Beratur penuh. Saiz maksimum ialah 10 apabila baris gilir penuh.
Baris gilir kosong. apabila cuba mengalih keluar elemen daripada baris gilir kosong.
Atas ialah kandungan terperinci Cuba Ini Tambah pengecualian pada kelas Baris Gilir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!