it-praxisportal/courses/java/11_exceptions_und_ressourcenmanagement
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +02:00
..
Aufgabe.java IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
index.html feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +02:00
Musterloesung.java IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
README.md IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
TestAufgabe.java IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00

☕ Java 11: Exceptions & Ressourcenmanagement

Professionelles Fehlermanagement entscheidet über die Stabilität unternehmenskritischer Java-Anwendungen. In diesem Modul lernst du die Differenzierung zwischen Checked und Unchecked Exceptions, das Design robuster Business-Exception-Hierarchien und das deterministische Ressourcenmanagement mit try-with-resources.


🏛️ 1. Die Java Exception-Hierarchie

                       Throwable
                           ▲
             ┌─────────────┴─────────────┐
           Error                      Exception
     (z.B. OutOfMemory)                  ▲
                           ┌─────────────┴─────────────┐
                   Checked Exceptions           RuntimeException
                   (z.B. IOException)          (Unchecked Exceptions)
                                                (z.B. NullPointer,
                                                 IllegalArgument)
  • Checked Exceptions (extends Exception): Müssen mit throws im Methodenkopf deklariert oder per try-catch behandelt werden. Signalisiert erwartbare Fehlerzustände (Netzwerk, I/O, Payment Gateway).
  • Unchecked Exceptions (extends RuntimeException): Müssen nicht explizit deklariert werden. Weisen typischerweise auf Programmierfehler oder verletzte Vorbedingungen hin.

🔄 2. Try-With-Resources & AutoCloseable

Früher wurden Ressourcen (Dateien, Datenbankverbindungen, Sockets) in fehleranfälligen finally-Blöcken geschlossen. Seit Java 7 übernimmt try-with-resources das Schließen automatisch und garantiert:

public class DatabaseClient implements AutoCloseable {
    @Override
    public void close() {
        System.out.println("Datenbankverbindung deterministisch geschlossen.");
    }
}

// Sichere Verwendung:
try (DatabaseClient db = new DatabaseClient()) {
    db.query("SELECT * FROM users");
} // <- Hier wird db.close() IMMER aufgerufen, auch bei Exceptions!

🔗 3. Exception Chaining & Multi-Catch

try {
    service.executeTransfer(from, to, amount);
} catch (InsufficientFundsException | InvalidAccountException e) {
    // Multi-Catch für ähnliche Fehlertypen
    logger.error("Geschäftsfehler: " + e.getMessage());
    // Chaining: Neue Exception mit Originalursache (cause)
    throw new PaymentGatewayException("Transaktion abgebrochen", e);
}

🎯 Aufgabenübersicht (Aufgabe.java)

  1. TODO 1: BankAccount mit Validierung, deposit() und withdraw() inklusive InsufficientFundsException.
  2. TODO 2: AuditLogSession mit AutoCloseable implementieren (deterministischer Log & State-Prüfung).
  3. TODO 3: PaymentProcessor.processPayment(...) mit try-with-resources, Multi-Catch und Exception-Chaining fertigstellen.