mały problem z wyjątkami i inicjowaniem pola

0

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?

0

Metody getInt i getDouble powinny w razie niepowodzenia rzucić wyjątkiem.

0

Można też w blokach catch zwrócić null.

0

Tak jak powiedział @bogdans, najlepiej rzucić wyjątkiem z funkcji jak coś pójdzie nie tak i wtedy nie będzie problemu z tym że funkcja zwraca coś nie tak.

0

czyli całość po linijce
public int getInt(){
mam wsadzić do try ?
i to samo z druga metoda

0

Nie,

    public int getInt() throws IOException, NumberFormatException
    {
        int liczba = 0;
        String text = null;
        BufferedReader wej = new BufferedReader(new InputStreamReader(System.in));
        text = wej.readLine();
        liczba = Integer.parseInt(text);
        return liczba;
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1