Junior — Middle
Tudja, mi az a kivétel (Exception) a Go nyelvben?
sobes.tech MI
Válasz az MI-től
A Go nyelvben nincsenek hagyományos kivételek (Exception), mint Java vagy Python esetén. Ehelyett a Go hibakezeléshez visszatérési értékeket használ: a függvény visszaad egy hibát (error), amit ellenőrizni kell.
Azonban a Go-ban van egy pánik (panic) és helyreállítás (recover) mechanizmus, amit az exception-ök analógiájaként lehet tekinteni, de ezeket kritikus hibák esetén használják, és nem szabad őket a normál hibakezelésre alkalmazni.
Hiba kezelési példa Go-ban:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("nullával való osztás")
}
return a / b, nil
}
eredmény, err := divide(10, 0)
if err != nil {
fmt.Println("Hiba:", err)
} else {
fmt.Println("Eredmény:", eredmény)
}
Panic/recover használata:
func mayPanic() {
panic("valami rosszul sült el")
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Visszaállt a panic után:", r)
}
}()
mayPanic()
fmt.Println("Ez a kód nem fog lefutni")
}