Sobes.tech
Junior — Middle

Vai jūs zināt, kas ir izņēmumi (Exception) Go valodā?

sobes.tech AI

Atbilde no AI

Go valodā nav tradicionālo izņēmumu (Exception), kā Java vai Python. Tā vietā Go izmanto atgriežamās vērtības kļūdu apstrādei: funkcija atgriež kļūdas vērtību (error), kuru ir jā pārbauda.

Tomēr Go ir panikas (panic) un atgūšanas (recover) mehānisms, ko var uzskatīt par līdzīgu izņēmumiem, bet tas ir paredzēts kritiskiem kļūdām un to nevajadzētu izmantot parastai kļūdu apstrādei.

Kļūdu apstrādes piemērs Go:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("dalīšana ar nulli")
    }
    return a / b, nil
}

rezultāts, err := divide(10, 0)
if err != nil {
    fmt.Println("Kļūda:", err)
} else {
    fmt.Println("Rezultāts:", rezultāts)
}

Panikas/recover izmantošana:

func mayPanic() {
    panic("kaut kas nogāja greizi")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Atgūts pēc panikas:", r)
        }
    }()
    mayPanic()
    fmt.Println("Šis kods netiks izpildīts")
}