Sobes.tech
Junior — Middle

Connaissez-vous ce qu'est une exception (Exception) dans le langage Go?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, il n'existe pas d'exceptions traditionnelles, comme en Java ou Python. À la place, Go utilise des valeurs de retour pour gérer les erreurs : la fonction retourne une valeur d'erreur (error), qu'il faut vérifier.

Cependant, en Go, il existe un mécanisme de panic et recover, qui peut être considéré comme un équivalent des exceptions, mais il est destiné aux erreurs critiques et ne doit pas être utilisé pour la gestion normale des erreurs.

Exemple de gestion d'erreur en Go :

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("division par zéro")
    }
    return a / b, nil
}

résultat, err := divide(10, 0)
if err != nil {
    fmt.Println("Erreur:", err)
} else {
    fmt.Println("Résultat:", résultat)
}

Utilisation de panic/recover :

func mayPanic() {
    panic("quelque chose a mal tourné")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Récupéré après le panic:", r)
        }
    }()
    mayPanic()
    fmt.Println("Ce code ne sera pas exécuté")
}