Menu
CoddyTech

Finally-Block

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy. Lektion 41 von 59.

Der finally-Block enthält Code, der nach den try-catch-Blöcken ausgeführt wird, unabhängig davon, ob eine Ausnahme auftritt oder nicht. Er wird häufig für Bereinigungsoperationen wie das Schließen von Dateien oder Datenbankverbindungen verwendet.

Hier ist die grundlegende Struktur eines try-catch-finally-Blocks:

try {
   // Code, der eine Ausnahme werfen könnte
} catch (ExceptionType e) {
   // Code zur Behandlung der Ausnahme
} finally {
   // Code, der immer ausgeführt wird
}

Sehen wir uns ein Beispiel mit einem Zähler an:

int counter = 0;
try {
   int result = 10 / 0;
   // Dies wird eine Ausnahme auslösen
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Dies wird immer ausgeführt
}

Nach der Ausführung des obigen Codes enthält counter:

3

Der Typ in den Klammern von catch bestimmt, welche Fehler dieser Block behandelt. Zwei häufige Fehler sind ArithmeticException, ausgelöst durch eine Ganzzahldivision durch null, und NumberFormatException, ausgelöst von Integer.parseInt(), wenn der Text keine Zahl ist. Ein einzelnes catch kann mehrere Typen gleichzeitig behandeln:

try {
   int value = Integer.parseInt(text);
   int result = 10 / value;
} catch (ArithmeticException | NumberFormatException e) {
   // behandelt beide
} finally {
   // wird immer ausgeführt
}

Stattdessen Exception abzufangen, ist umfassender: Es behandelt beide sowie jede andere Ausnahme.

challenge icon

Aufgabe

Einfach

Erstelle eine Methode namens processNumber, die zwei Argumente entgegennimmt:

  1. Einen String (number), der in eine Ganzzahl umgewandelt werden soll
  2. Einen Boolean-Wert (shouldThrow), der bestimmt, ob eine Ausnahme ausgelöst werden soll

Die Methode soll:

  1. Eine Ergebnisvariable mit dem Wert 0 initialisieren
  2. Im try-Block:
    • Wenn shouldThrow true ist, 10 durch 0 teilen
    • Andernfalls den Zahlen-String in eine Ganzzahl umwandeln und in result speichern
  3. Im catch-Block: result auf -1 setzen
  4. Im finally-Block: 100 zu result addieren
  5. result als String zurückgeben

Probier es selbst

import java.util.Scanner;

public class Main {
    public static String processNumber(String number, boolean shouldThrow) {
        // Schreibe deinen Code hier
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String number = scanner.nextLine();
        boolean shouldThrow = Boolean.parseBoolean(scanner.nextLine());
        
        System.out.println(processNumber(number, shouldThrow));
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Java-Compiler