Maison > Article > développement back-end > Comment attraper la panique au Go ?
Attraper la panique dans Go
Lors de la gestion d'événements inattendus dans Go, la panique est un mécanisme courant pour indiquer une erreur critique. Cependant, il est parfois souhaitable de gérer ces paniques avec élégance et de poursuivre l'exécution.
Dans le code fourni :
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) }
Si aucun argument de fichier n'est fourni, le programme panique en raison d'un manque de -indice de plage. Dans de tels cas, nous pouvons utiliser la fonction recovery() pour attraper et gérer la panique.
Utiliser recovery() pour gérer les paniques
La fonction recovery() permet un programme pour reprendre le contrôle après une panique. Elle peut être utilisée au sein d'une fonction différée, qui sera exécutée même si une panique survient dans la fonction principale.
func main() { defer func() { if recovered := recover(); recovered != nil { // Handle the panic here fmt.Println("File not provided") } }() file, err := os.Open(os.Args[1]) if err != nil { fmt.Println("Could not open file") } fmt.Printf("%s", file) }
Dans ce code modifié, la fonction recovery() est utilisée au sein d'une fonction différée. Si une panique se produit, recovery() renverra la valeur transmise à l'appel de panique. Dans ce cas, il renverra nil puisque nous n'avons spécifié aucune valeur de panique.
En vérifiant la valeur de retour de recovery(), nous pouvons gérer la panique de manière appropriée, comme l'impression d'un message d'erreur et la poursuite de l'exécution. .
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!