capypad
0 Tage Serie
go / beginner
Snippet

Fehler erstellen und behandeln

Go behandelt Fehler explizit über Rückgabewerte, nicht über Exceptions. Funktionen geben einen Fehler als letzten Rückgabewert zurück. nil bedeutet, dass kein Fehler aufgetreten ist. Die Funktion errors.New() erstellt eine einfache Fehlermeldung. Überprüfe Fehler immer bevor du andere Rückgabewerte verwendest.

snippet.go
go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package main
import (
"errors"
"fmt"
)
 
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
 
func main() {
result, err := divide(10, 2)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Result: %d\n", result)
_, err = divide(5, 0)
if err != nil {
fmt.Println("Caught error:", err)
}
}
Erklärung
1
func divide(a, b int) (int, error)
Fehler wird als letzter Wert zurückgegeben; Aufrufer müssen ihn prüfen
2
errors.New("division by zero")
Erstellt einen neuen Fehler mit der gegebenen Meldungstext
3
return a / b, nil
nil zurückgegeben wenn Operation erfolgreich; signalisiert keinen Fehler an Aufrufer
4
if err != nil { ... }
Standardmuster: prüfe ob Fehler nicht nil ist, dann behandle ihn