Sobes.tech
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")
}