Maison > développement back-end > Golang > Comment détecter et gérer les paniques en Go ?

Comment détecter et gérer les paniques en Go ?

Linda Hamilton
Libérer: 2024-11-24 06:16:10
original
244 Les gens l'ont consulté

How to Catch and Handle Panics in Go?

Gestion des paniques dans Go

Dans Go, un programme peut rencontrer des paniques lorsqu'une erreur inattendue se produit. Par défaut, une panique arrête l'exécution du programme. Cependant, il est possible d’« attraper » ces paniques et de les gérer avec élégance. Cet article donne un aperçu de la façon de gérer les paniques dans Go.

Catching Panics

Go fournit une fonction recovery() intégrée qui permet à un programme de gérer la panique. comportement. Lorsqu'une panique se produit dans une goroutine, recovery() peut être utilisé pour intercepter la panique et renvoyer sa valeur.

Exemple :

Considérez le code suivant :

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open(os.Args[1])
    if err != nil {
        fmt.Println("Could not open file")
    }
    fmt.Printf("%s", file)
}
Copier après la connexion

Si aucun argument de fichier n'est fourni, ce code paniquera en raison d'une erreur d'index hors plage. Pour gérer cette panique, nous pouvons utiliser recovery() comme suit :

package main

import (
    "fmt"
    "os"
)

func main() {
    // Wrap the main function in a deferred function that recovers from panics
    defer func() {
        if err := recover(); err != nil {
            fmt.Printf("Caught panic: %v\n", err)
        }
    }()

    file, err := os.Open(os.Args[1])
    if err != nil {
        fmt.Println("Could not open file")
    }
    fmt.Printf("%s", file)
}
Copier après la connexion

Maintenant, si le programme est exécuté sans argument de fichier, il interceptera la panique et imprimera le message d'erreur au lieu de se terminer.

Quand utiliser les paniques

Bien que détecter les paniques puisse être utile dans certaines situations, il est important de les utiliser judicieusement. Le paradigme de Go met l'accent sur la vérification explicite des erreurs, et les paniques ne doivent être utilisées que dans des circonstances exceptionnelles où la récupération n'est pas possible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal