Entra

View Full Version : [JAVA] Throws


joeykiske
02-03-2010, 19:34
Salve,
vorrei chiedervi il motivo per cui la compilazione di questo programma da la riga 101,la quale non dovrebbe esser generata data la presenza di throws

Classe per gestire l'eccezione


public class PrenotazioneException extends Exception
{

public PrenotazioneException()
{
super ("Problema con la prenotazione!");
}

public String toString()
{
return getMessage()+": posti esauriti";
}

}


Classe per il botteghino


public class Botteghino
{
private int postiDisponibili;

public Botteghino()
{
postiDisponibili=100;
}

public void prenota() throws PrenotazioneException
{
try
{
if (postiDisponibili==0)
{
throw new PrenotazioneException();
}
postiDisponibili--;
}
catch(PrenotazioneException exc)
{
System.out.println(exc.toString());
}
}
}



classe con MAIN


public class GestorePrenotazioni
{
public static void main (String args []) //throws PrenotazioneException
{
Botteghino botteghino = new Botteghino();
try
{
for (int i=1;i<=110;i++)
{
botteghino.prenota();
System.out.println("Prenotato posto n° " + i);
}
}
catch (PrenotazioneException exc)
{
System.out.println(exc.toString());
}
}
}


Grazie anticipatamente per la risposta!! :D :D

Sorry x l'assenza di quote before..

wingman87
02-03-2010, 19:58
Indenta bene ed inserisci tutto il codice in un tag CODE.

ndakota
02-03-2010, 21:53
Il try-catch dovresti metterlo nel main, nel ciclo for che chiama prenota. Cosė non ha senso. Dovresti rivederti bene quando lanciare un'eccezione e quando catturarla/gestirla.

carosene
02-03-2010, 21:54
Nel metodo prenota() stai lanciando un'eccezione in un blocco try/catch. In questo caso non ha molto senso. Infatti se levi il blocco try/catch funziona...

joeykiske
03-03-2010, 16:00
:D :D grazie mille! :mc: :mc: