it-praxisportal/courses/go/08_defer_panic_und_recover
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.go Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +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.go Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
README.md Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
test_aufgabe.go Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00

Go 08: Ressourcensicherheit mit defer & Recover 🛡️

Willkommen zu Modul 08 des Go (Golang) Kurses!

In diesem Modul lernst du, wie Go Ressourcenbereinigung und Crash-Prävention handhabt: Verzögerte Ausführung mit defer (LIFO-Stack), fatale Systemzustände mit panic und Absicherung kritischer Programmteile mit recover().


💡 1. Das Wichtigste in Kürze

defer

Anweisungen mit defer werden garantiert ausgeführt, sobald die umschließende Funktion beendet wird.

  • LIFO: Mehrere defer-Aufrufe werden in umgekehrter Reihenfolge abgearbeitet (wie ein Stack).
  • Einsatzgebiete: file.Close(), mutex.Unlock(), Datenbank-Verbindungen schließen.

panic & recover

  • panic(val) bricht die normale Funktionsausführung ab und läuft den Call-Stack hoch.
  • recover() fängt einen laufenden Panic ab, funktioniert jedoch ausschließlich innerhalb einer defer-Funktion.
func SafeRun() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Panic abgefangen:", r)
        }
    }()
    panic("Schwerwiegender Systemausfall")
}

🎯 Teilziele in aufgabe.go

  1. TODO 1: ProtokollierteOperation(name string, logEntries *[]string) string mit defer LIFO Logging implementieren.
  2. TODO 2: RessourcenManager mit Acquire() und Release() über defer steuern.
  3. TODO 3: KritischeBerechnung(teiler int) int mit panic("division durch null") bei teiler == 0.
  4. TODO 4: SichereAusfuehrung(fn func()) (recoveredErr any, ok bool) mit defer und recover() implementieren.