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")
}