Sobes.tech
Junior — Middle

Sai cosa sono le eccezioni (Exception) nel linguaggio Go?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go non ci sono eccezioni tradizionali come in Java o Python. Al contrario, Go utilizza valori di ritorno per gestire gli errori: la funzione restituisce un valore di errore (error), che deve essere verificato.

Tuttavia, in Go esiste un meccanismo di panico (panic) e recupero (recover), che può essere considerato come un equivalente delle eccezioni, ma è destinato a errori critici e non dovrebbe essere usato per la gestione normale degli errori.

Esempio di gestione degli errori in Go:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("divisione per zero")
    }
    return a / b, nil
}

risultato, err := divide(10, 0)
if err != nil {
    fmt.Println("Errore:", err)
} else {
    fmt.Println("Risultato:", risultato)
}

Utilizzo di panic/recover:

func mayPanic() {
    panic("qualcosa è andato storto")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recuperato dopo il panic:", r)
        }
    }()
    mayPanic()
    fmt.Println("Questo codice non verrà eseguito")
}