Cordiais saudações.
Estou tentando compilar os seguintes arquivos de código java com extensão java:
- ICharQ.java
- FixedQueue.java
- QueueFullException.java
- QueueEmptyException.java
- QExcDemo.java
Mas está dando erro no arquivo FixedQueue.java, e o erro é o seguinte:
FixedQueue.java:22: error ';' expected
throws QueueEmptyException() {
^
Essa linha no programa é maior, ela é composta integralmente pelo código abaixo:
public char get()
throws QueueEmptyException() {
Veja que foi dividido em duas linhas porque é uma linha grande, e o erro apontado acima fica na posição dos parenteses (). Revisei o código mas não vejo onde possa colocar mais um ponto e vírgula. Durante a compilação do arquivo QExcDemo.java ocorre a chamada a um erro semelhante, não havendo a formação do respectivo .class. Acho que o erro do FixedQueue.java provoca o erro do QExcDemo.java. Veja como esta o erro durante a compilação do QExcDemo.java:
.\FixedQueue.java:22: error ';' expected
throws QueueEmptyException() {
^
Vou listar abaixo o código deste dois arquivos. Por favor, alguém poderia me dizer porque este erro está ocorrendo. Qual a solução?
Obrigado,
Ronaldo
// Classe de fila de tamanho fixo para caracteres que usa exceções.
class FixedQueue implements ICharQ {
private char q[]; // esse array contém a fila
private int putloc, getloc; // índices put e get
// Constrói uma fila vazia dado seu tamanho.
public FixedQueue(int size) {
q = new char[size]; // aloca memória para a fila
putloc = getloc = 0;
}
// Insere um caractere na fila.
public void put(char ch) throws QueueFullException {
if(putloc == q.length) throw new QueueFullException(q.length);
q[putloc++] = ch;
}
//Remove um caracter da fila.
public char get()
throws QueueEmptyException() {
if(getloc == putloc) throw new QueueEmptyException();
return q[getloc++];
}
}
// Demonstra as exceções de fila.
class QExcDemo {
public static void main(String args[]) {
FixedQueue q = new FixedQueue(10);
char ch;
int i;
try {
// excede a fila
for(i = 0; i < 11; i++) {
System.out.print("Attempting to store : " + (char) ('A' + i));
q.put((char) ('A' + i));
System.out.println(" - OK");
}
System.out.println();
}
catch(QueueFullException exc) {
System.out.println(exc);
}
System.out.println();
try {
// tenta acessar elemento em fila vazia
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);
}
}
}