PDA

View Full Version : [JAVA] Errore in fase di compilazione


D4rkAng3l
30-01-2009, 18:26
Ciao,
ho creato una classe che contiene il metodo main().
In tale classe faccio uso della classe Input (credo appartenga a java.lang.object...o cmq sulla documentazione della proff dice: public class Input extends java.lang.Object )

Mi dà i seguenti errori durante la compilazione:

C:\Programmi\Crimson Editor\template\esercizi\supermercato>javac Supermercato.java
Supermercato.java:16: unreported exception java.io.IOException; must be caught or declared to be thrown
nome = Input.readString();
^
Supermercato.java:18: unreported exception java.io.IOException; must be caught or declared to be thrown
prezzo = Input.readDouble();
^
Supermercato.java:20: unreported exception java.io.IOException; must be caught or declared to be thrown
quantita = Input.readInt();
^
Supermercato.java:22: unreported exception java.io.IOException; must be caught or declared to be thrown
indice = Input.readInt();
^
4 errors

Il mio codice è:


public class Supermercato{
public static void main(String[] args){

ArticoloInSupermercato[] aIS; // Dichiaro un array di articoli presenti in un supermercato

int i = 0;
String nome;
double prezzo;
int quantita, indice;

aIS = new ArticoloInSupermercato[5]; // Creo l'aray di 5 elementi

for(i = 0; i < 5; i++){

System.out.println("Inserire il nome dell' articolo sotto forma di stringa:");
nome = Input.readString();
System.out.println("Inserire il prezzo dell' arsticolo sotto forma di valore decimale:");
prezzo = Input.readDouble();
System.out.println("Inserire la quantita sotto forma di valore intero:");
quantita = Input.readInt();
System.out.println("Inserire l'indice del reparto; 1: Ortofrutta; 2: Macelleria; 3: Pulizia casa; 4: benessere");
indice = Input.readInt();

aIS[i] = new ArticoloInSupermercato(nome, prezzo, quantita, indice);
}



}
}


come mai? Come posso risolvere?

Grazie
Andrea

wizard1993
30-01-2009, 18:53
più che esserci scritto
unreported exception java.io.IOException; must be caught or declared to be thrown

correggerai quindi così


public class Supermercato{
public static void main(String[] args){

ArticoloInSupermercato[] aIS; // Dichiaro un array di articoli presenti in un supermercato

int i = 0;
String nome;
double prezzo;
int quantita, indice;

aIS = new ArticoloInSupermercato[5]; // Creo l'aray di 5 elementi

for(i = 0; i < 5; i++){
try{

System.out.println("Inserire il nome dell' articolo sotto forma di stringa:");
nome = Input.readString();
System.out.println("Inserire il prezzo dell' arsticolo sotto forma di valore decimale:");
prezzo = Input.readDouble();
System.out.println("Inserire la quantita sotto forma di valore intero:");
quantita = Input.readInt();
System.out.println("Inserire l'indice del reparto; 1: Ortofrutta; 2: Macelleria; 3: Pulizia casa; 4: benessere");
indice = Input.readInt();

aIS[i] = new ArticoloInSupermercato(nome, prezzo, quantita, indice);
}
catch(java.io.IOException ex){
//do some with expection
}
}



}
}

D4rkAng3l
30-01-2009, 19:16
più che esserci scritto
unreported exception java.io.IOException; must be caught or declared to be thrown

correggerai quindi così


public class Supermercato{
public static void main(String[] args){

ArticoloInSupermercato[] aIS; // Dichiaro un array di articoli presenti in un supermercato

int i = 0;
String nome;
double prezzo;
int quantita, indice;

aIS = new ArticoloInSupermercato[5]; // Creo l'aray di 5 elementi

for(i = 0; i < 5; i++){
try{

System.out.println("Inserire il nome dell' articolo sotto forma di stringa:");
nome = Input.readString();
System.out.println("Inserire il prezzo dell' arsticolo sotto forma di valore decimale:");
prezzo = Input.readDouble();
System.out.println("Inserire la quantita sotto forma di valore intero:");
quantita = Input.readInt();
System.out.println("Inserire l'indice del reparto; 1: Ortofrutta; 2: Macelleria; 3: Pulizia casa; 4: benessere");
indice = Input.readInt();

aIS[i] = new ArticoloInSupermercato(nome, prezzo, quantita, indice);
}
catch(java.io.IOException ex){
//do some with expection
}
}



}
}

mmm le ecezioni le abbiamo trattate solo in teoria per ora...c'è un modo per disabilitarle?

wizard1993
30-01-2009, 19:20
un eccezzione o la gestisci o la rilanci, per rilanciarla aggiungi
throw nomeccezione
dopo i parametri del metodo e prima delle graffe, ma prima o poi dovrai gestirle

D4rkAng3l
30-01-2009, 19:25
un eccezzione o la gestisci o la rilanci, per rilanciarla aggiungi
throw nomeccezione
dopo i parametri del metodo e prima delle graffe, ma prima o poi dovrai gestirle

vabbè da quanto studiato in teoria se viene rilanciata nel main viene mandata alla JVM che termina il processo...dico bene o sbaglio?

wizard1993
30-01-2009, 19:59
vabbè da quanto studiato in teoria se viene rilanciata nel main viene mandata alla JVM che termina il processo...dico bene o sbaglio?

hai capito