Try Catch Throw Exception

Honky

Mitglied
Die folgende Methode wandelt eine Zeichenkette in eine Zahl um. Da es möglich ist, dass die
übergebene Zeichenkette keiner Zahl entspricht, wirft diese Methode im Falle eines fehlerhaften Inputs eine NumberFormatException. Vervollständigen Sie folgenden Code
Code:
public static int stringToInt(String txt){
return Integer.parseInt(txt);
}

indem Sie
1. Die Exception abfangen und die Ausgabe „Das war keine Zahl“ auf die Konsole ausgeben.
2. Die Exception abfangen, die Ausgabe „Das war keine Zahl“ auf die Konsole ausgeben und die gefangene Exception abermals werfen.
3. Die Methode derart deklarieren, dass diese Exception automatisch an die nächste aufrufende
Funktion weitergeworfen wird.

Meine Idee:
1.)

Code:
public class Ubung_1 {
    public static void main(String[] args) {
        int zahl;


        try {
            zahl = stringToInt("text");
        }catch (NumberFormatException e){
            System.out.println("Es wurde keine Zahl eingegeben" + e.toString());
        }


        }

    public static int stringToInt(String txt){
        return Integer.parseInt(txt);

    }
}

2.) Leider versteh ich Throw nich so ganz und wozu ich das brauche.
Ich denke ich solls so machen, nur sehe ich den Sinn nicht, das zu tun.

Code:
public class Ubung_1 {
    public static void main(String[] args) {
        int zahl;


        try {
            zahl = stringToInt("text");
        }catch (NumberFormatException e){
            System.out.println("Es wurde keine Zahl eingegeben" + e.toString());
        }throw new NumberFormatException("Es wurde keine Zahl eingegeben");


        }

    public static int stringToInt(String txt){
        return Integer.parseInt(txt);

    }
}

3.) Versteh ich nur Bahnhof, ich soll eine Exception in eine andere Methode werfen ?
 
Ich verstehe die Aufgabe so, dass du die oben stehende Funktion verändern sollst, aber nicht die Stelle, an der sie aufgerufen wird.


Bei 2 wirfst du außerdem in jedem Fall eine neue Exception, und nicht nur die, die du fängst.

Bei 3 ist das Stichwort throws, dazu sollte sich was finden lassen 😉
 

Neue Themen


Zurück
Oben