W jednym z ćwiczeń muszę zrobić klasę pochodną do BufferedReader z metodami getInt i getDouble odczytującymi te liczby ze strumienia.
Kompilator chce bym nadał początkowe wartości polom "liczba",ale jeśli wystąpi błąd podczas wykonywania programu to metoda zwróci mi początkową wartość (a tego nie chcę).
import java.io.*;
public class Main {
public int getInt() {
int liczba;
String text = null;
BufferedReader wej=new BufferedReader(new InputStreamReader(System.in));
try{
text=wej.readLine(); }
catch(IOException e) {System.out.print("Błąd podczas odczytywania strumienia"); }
try{
liczba=Integer.parseInt(text); }
catch(NumberFormatException e){System.out.print("To nie jest liczba całkowita"); }
return liczba;
}
public void getDouble() {
double liczba;
String text = null;
BufferedReader wej=new BufferedReader(new InputStreamReader(System.in));
try{
text=wej.readLine(); }
catch(IOException e) {System.out.print("Błąd podczas odczytywania strumienia"); }
try{
liczba=Double.parseDouble(text); }
catch(NumberFormatException e) {System.out.print("To nie je double"); }
return liczba;
}
}
Powinienem w blokach catch zwrócić -1 (tak się chyba zgłasza błąd), czy jest jakieś inne,lepsze rozwiązanie?