Java Exception Error Handling - Wie funktioniert das?

... komplette Frage anzeigen

4 Antworten

Du kannst einer Methode Methode sagen, dass diese generell einen Fehler Auswerfen kann, indem du hinten an die Methode ein "throws Exception" anhängst:

private void test() throws Exception {
 ...
}

bei deinem Beispiel würde das in etwa so aussehen:

private void waehleZahl(int zahl) throws Exception {
 if (zahl > 2) {
    throw new Exception("Zahl übersteigt das Limit");
 }
}

Das wiederum behandelst du in einem Try-Catch Block:

try {
waehleZahl(3);
} catch (Exception e) {
e.printStackTrace();
}

Und behandelst diese ausnahme wie du es für dich richtig ist.: Brichst die Methode ab und gibst die Meldung an den Anwender raus, oder wie auch immer.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von KnusperPudding
08.04.2016, 08:46

[...]wieder zum Anfang des Programms springt

Willst du wirklich zum Anfang des Programms?

Du willst ja nur, dass eine Eingabe von 1 und 2 Möglich ist. Das wäre auch "einfacher" lösbar, indem du z.B. eine Schleife nimmst, die erst verlassen wird, wenn eine korrekte Eingabe (Wert1-2) getätigt wurde.

while (auswahl == 0) {
    int eingabe = new Scanner(System.in).nextInt();
    if (eingabe >= 1 && eingabe <= 2) {
        auswahl = eingabe;
        break;
    } else {
        System.err.println("Bitte nur 1 oder 2 eingeben");
    }
}
1
Kommentar von KingTamino
08.04.2016, 09:34
if (zahl > 2)

Und was wenn der User "0" oder "-1" eintippt?

0

also erstmal kannst du natürlich eine hauptschleife programmieren und if/ then verwenden oder mit errorlevel arbeiten oder aber ein try catch block nutzen

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von KingTamino
08.04.2016, 08:29

Ich würde für den Anfang zu "if" raten. Er scheint ja noch in den Kinderschuhen zu stecken ;)

1
Kommentar von uni61182
08.04.2016, 08:31

joa nen if drumrum und fertig ... if( eingabe==1 || eingabe==2) {Programmausführung}

1
Kommentar von uni61182
08.04.2016, 08:41

ne schleife ?

0

ich würde das mit while machen

zuerst
int input = in();

dann
while( !(input==1 || input ==2)
{
System.out.println("nur 1 oder 2 erlaubt");
input = in();
}

schon kann der input nurmehr 1 oder 2 sein

Antwort bewerten Vielen Dank für Deine Bewertung

ich schick dir heute abend eine beispielklasse, die genau das macht dass dann eine Exception geworfen wird die dann z.b. "3 ist nicht erlaubt, bitte 1 oder 2 eingeben" ausgibt

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?