Große Try-Catch Blöcke: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
(Die Seite wurde neu angelegt: „{{Bewertungsrichtlinie |baustelle=Ja |blatt=3 |schweregrad=leicht |weiterlesen=Nein }}“)
 
Keine Bearbeitungszusammenfassung
 
Zeile 2: Zeile 2:
|baustelle=Ja
|baustelle=Ja
|blatt=3
|blatt=3
|beschreibung=Wir haben gelernt, dass Try-Catch Blöcke dafür da sind, kritische Stellen im Quellcode einzuklammern und deren geworfene Exception(s) zu fangen.
Wir haben also gelernt was sie können.
Jetzt lernen wir noch, wie wir sie richtig benutzen.
Dazu gibt es zum Glück nicht viel zu sagen:
'''Try-Catch Blöcke sollen nur genau die Stelle (meißt eine oder wenige Zeilen) die tatsächlich die Exception auslöst umfassen.'''
|schweregrad=leicht
|schweregrad=leicht
|negativ=<syntaxhighlight lang="Java">
try {
    String line = scanner.nextLine();
    int number = Integer.parseInt(line);
    boolean valid = game.doMove(number);
    if (!valid) {
        System.out.println("No. That move wasn't valid. Too bad.");
    }
} catch (NumberFormatException e) {
    System.out.println("That wasn't a number you entered, was it?");
}
</syntaxhighlight>
|positiv=<syntaxhighlight lang="Java">
String line = scanner.nextLine();
int number;
try {
    int number = Integer.parseInt(line);
} catch (NumberFormatException e) {
    System.out.println("That wasn't a number you entered, was it?");
    return;
}
boolean valid = game.doMove(number);
if (!valid) {
    System.out.println("No. That move wasn't valid. Too bad.");
}
</syntaxhighlight>
|weiterlesen=Nein
|weiterlesen=Nein
}}
}}

Aktuelle Version vom 13. Juni 2024, 17:28 Uhr

🚧 Diese Seite befindet sich in Bearbeitung 🚧
🤓 Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 3 annotiert und ab Blatt 4 abgezogen wird. 🤓

Beschreibung

Wir haben gelernt, dass Try-Catch Blöcke dafür da sind, kritische Stellen im Quellcode einzuklammern und deren geworfene Exception(s) zu fangen. Wir haben also gelernt was sie können.

Jetzt lernen wir noch, wie wir sie richtig benutzen. Dazu gibt es zum Glück nicht viel zu sagen:

Try-Catch Blöcke sollen nur genau die Stelle (meißt eine oder wenige Zeilen) die tatsächlich die Exception auslöst umfassen.


Negativbeispiel

try {
    String line = scanner.nextLine();
    int number = Integer.parseInt(line);
    boolean valid = game.doMove(number);
    if (!valid) {
        System.out.println("No. That move wasn't valid. Too bad.");
    }
} catch (NumberFormatException e) {
    System.out.println("That wasn't a number you entered, was it?");
}

Positivbeispiel

String line = scanner.nextLine();
int number;
try {
    int number = Integer.parseInt(line);
} catch (NumberFormatException e) {
    System.out.println("That wasn't a number you entered, was it?");
    return;
}
boolean valid = game.doMove(number);
if (!valid) {
    System.out.println("No. That move wasn't valid. Too bad.");
}