PDA

Visualizza la versione completa : Java Eccezioni Help


Dorcan82
26-10-2003, 14:19
Salve.....un nuovo problema
Ho un classe che acquisisce dati da tastiera e deve convertire il tutto in intero e visualizzarlo. Provo a gestire eccezioni per l'acqusizione dati e eccezzioni per evitare che vengano convertite stringe che contengono parole e non numeri

Ecco il pakcage della classe

package ioconsole;
//classe contenente metodi per acquisizione interi
import java.io.*;

public class InOut {
//costruttore
public InOut(){
integer=0;
}

//medoti di accesso e I/O
public String Input()throws IOException{
String buffer=null;
InputStreamReader inReader=new InputStreamReader(System.in);
BufferedReader bfReader=new BufferedReader(inReader);
System.out.println("Immetti un intero: ");

try{
buffer=bfReader.readLine();
}
catch (IOException ioe){
System.out.println("Message: errore di I/O");
throw ioe;
}
return buffer;
}

public void Output(){
System.out.println("Contenuto di integer:"+this.getInteger());
}

public void setInteger()throws IOException{
try{
integer=Integer.parseInt(this.Input());
}
catch(NumberFormatException nfe){
System.out.println("Errore: non hai inserito un intero");
throw nfe;
}
}
public int getInteger(){return integer;}

//variabile di istanza
private int integer;
}


Ecco il main

/*IntegerIO.java Created on 25 ottobre 2003, 13.37*/
import ioconsole.InOut;
/*@author Programmer*/
public class IntegerIO {
public InOut ob;
/** Creates a new instance of IntegerIO */
public IntegerIO() {
ob=new InOut();
}

/*@param args the command line arguments*/
public static void main(String[] args){
IntegerIO obj=new IntegerIO();
obj.ob.setInteger();
obj.ob.Output();
}
}

Ecco l'errore
IntegerIO.java [14:1] unreported exception java.io.IOException; must be caught or declared to be thrown
obj.ob.setInteger();
^
1 error
Errors compiling IntegerIO.

Capisco che lungo ma vi prego fatemi capire xk non so cosa fare.
Aspetto risposta e grazie in anticipo

V1RuZ
26-10-2003, 14:49
nn ci capisco nulla con le eccezioni, ma ti d errore forse xch non catturi l'eccezione IOException in setInteger?

LeleFT
26-10-2003, 15:52
Come dice V1RuZ non catturi l'eccezione lanciata dal metoso setInteger. Tu hai dichiarato questo metodo cos:


public void setInteger() throws IOException {
...
}


Ossia hai detto che il metodo setInteger pu lanciare un'eccezione di tipo IOException. IOException non un'eccezione di tipo RuntimeException quindi quando usi questo metodo devi racchiuderlo in un blocco try/catch.


Ciao.

Loading