- 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 |
||
|---|---|---|
| .. | ||
| aufgabe.go | ||
| index.html | ||
| musterloesung.go | ||
| README.md | ||
| test_aufgabe.go | ||
Go 07: Explizites Error-Handling ⚡
Willkommen zu Modul 07 des Go (Golang) Kurses!
In diesem Modul lernst du das fehlerrobuste Paradigma von Go kennen: Keine unkontrollierten Exceptions, sondern explizite Rückgabewerte (if err != nil), vordefinierte Sentinel Errors, Error-Wrapping mit %w und Custom Error-Structs.
💡 1. Das Wichtigste in Kürze
Fehler sind Werte
Das Go error-Interface erfordert lediglich eine Methode:
type error interface {
Error() string
}
Sentinel Errors
Globale, unveränderliche Fehlervariablen:
var ErrNotFound = errors.New("eintrag nicht gefunden")
Error Wrapping
Kontextinformationen hinzufügen, ohne die ursprüngliche Fehlerursache zu zerstören:
return fmt.Errorf("datenbank-abfrage fehlgeschlagen: %w", err)
Eigene Error-Structs
Strukturierte Zusatzdaten (wie Fehlercodes) als Struct kapseln:
type QueryError struct {
Query string
Err error
}
func (e *QueryError) Error() string { return fmt.Sprintf("Fehler bei %s: %v", e.Query, e.Err) }
🎯 Teilziele in aufgabe.go
- TODO 1: Sentinel Errors
ErrInvalidAmountundErrInsufficientFundsdefinieren. - TODO 2: Struct
BankAccountmitDepositundWithdrawMethoden implementieren. - TODO 3: Custom Struct
APIErrormitError() stringdefinieren. - TODO 4:
ExecuteRequest(endpoint, token string) (string, error)mit Error-Wrapping umsetzen.