Maison >développement back-end >Golang >Étendre les capacités de gestion des exceptions de Golang
Les moyens d'étendre les capacités de gestion des exceptions de Go incluent la définition de types d'erreurs personnalisés pour fournir des informations supplémentaires. Utilisez le mot-clé panic pour lever une exception afin d'interrompre le programme et de transmettre une valeur d'erreur. Écrivez un gestionnaire d'erreurs à l'aide de la fonction de récupération pour gérer les exceptions levées et reprendre l'exécution du programme.
Capacités étendues de gestion des exceptions Go
Le mécanisme de gestion des exceptions du langage Go fournit un moyen simple et efficace de gérer les erreurs d'exécution. Cependant, son comportement par défaut peut être trop limité pour certains scénarios. Cet article examinera certaines façons d'étendre les capacités de gestion des exceptions de Go, notamment en utilisant des types d'erreurs personnalisés, en lançant des exceptions et en écrivant des gestionnaires d'erreurs.
Types d'erreur personnalisés
Le langage Go vous permet de définir vos propres types d'erreur, ce qui peut contribuer à améliorer la lisibilité et la maintenabilité de votre code. Les types d’erreur personnalisés peuvent contenir des informations supplémentaires pour faciliter le débogage et le dépannage.
type MyError struct { msg string } func (e MyError) Error() string { return e.msg } func someFunc() (int, error) { if somethingWrong { return 0, MyError{"Something went wrong!"} } return 1, nil }
Lance d'exceptions
Dans Go, le mot-clé panic
est utilisé pour lancer des exceptions. Les exceptions interrompent l'exécution normale du programme et transmettent une valeur pour indiquer l'erreur. panic
关键字用于抛出异常。异常会中断程序的正常执行,并传递一个值来表示错误。
func someFunc() { if somethingWrong { panic("Something went wrong!") } }
编写错误处理程序
Go 语言提供了 recover
函数来恢复从异常中抛出的错误。它可以将异常转换为 error
func main() { defer func() { if err := recover(); err != nil { // 处理错误 } }() someFunc() }
Writing Error Handlers
Le langage Go fournit la fonctionrecover
pour récupérer les erreurs générées par les exceptions. Il convertit les exceptions en type error
et permet au programme de les gérer. package main import ( "fmt" "net/http" ) type ServerError struct { code int message string } func (e ServerError) Error() string { return fmt.Sprintf("Error %d: %s", e.code, e.message) } func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { if somethingWrong { http.Error(w, "Internal Server Error", http.StatusInternalServerError) return } // 其它代码 }) http.ListenAndServe(":8080", nil) }
Un cas pratique
🎜🎜Ce qui suit est un cas pratique qui montre comment utiliser des types d'erreurs personnalisés et des gestionnaires d'erreurs pour gérer les erreurs dans un serveur Web : 🎜rrreee🎜En étendant les capacités de gestion des exceptions de Go, vous pouvez créer des , des applications plus maintenables. 🎜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!