Große Try-Catch Blöcke

Aus Programmieren-Wiki
🚧 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.");
}