운동 파일:
QueueFullException.java
QueueEmptyException.java
고정큐.java
QExcDemo.java
이 프로젝트에서는 대기열 클래스(Queue)에 대해 가득 찬 대기열과 빈 대기열에 대한 오류 조건을 나타내는 두 개의 사용자 정의 예외가 생성되었습니다. 이러한 예외는 put() 및 get() 메소드에서 사용됩니다.
대기열 예외:
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에는 Put() 및 get() 메서드에 발생 예외가 포함되어 있으며, 이는 FixQueue에서 발생한 예외를 반영합니다.
public interface ICharQ { void put(char ch) throws QueueFullException; char get() throws QueueEmptyException; }
예상 출력:
프로그램은 요소 삽입 및 제거 성공을 나타내는 메시지와 오류 메시지를 표시합니다.
대기열이 가득 찼습니다. 대기열이 가득 찬 경우 최대 크기는 10입니다.
대기열이 비어 있습니다. 빈 대기열에서 요소를 제거하려고 할 때.
위 내용은 Queue 클래스에 예외를 추가해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!