Le langage Go fournit deux mécanismes de gestion des erreurs : 1. Gestion des erreurs : utilisez le paramètre err pour renvoyer une erreur, et l'appelant doit la gérer explicitement 2. Gestion des exceptions : utilisez les fonctions panic() et recovery() pour déclencher et capturer les exceptions. Scénario pratique : la gestion des erreurs est souvent utilisée pour les opérations sur les fichiers (le renvoi de zéro indique un succès, une valeur non nulle indique une erreur) et la gestion des exceptions convient aux requêtes réseau (une exception est levée lorsqu'une erreur se produit).
Gestion des erreurs et gestion des exceptions dans le langage Go : comparaison et pratique
Le langage Go fournit deux mécanismes principaux pour gérer les erreurs dans les fonctions : la gestion des erreurs et la gestion des exceptions. Ils ont des fonctions différentes et des scénarios applicables, et comprendre leurs différences est crucial pour écrire un code robuste et maintenable.
Gestion des erreurs
La gestion des erreurs se fait en renvoyant l'erreur de la fonction à l'aide du paramètre err
. Les erreurs sont généralement représentées par la valeur nil
, qui renvoie une valeur non nulle si une erreur se produit. err
参数从函数中返回错误来完成的。错误通常由值 nil
表示,如果发生错误,则返回非零值。
func myFunction() error { // ... 进行一些操作 if err != nil { return err } // 返回 nil 表示没有发生错误 return nil }
调用带有 err
参数的函数时,必须显式检查错误并根据需要进行处理。
err := myFunction() if err != nil { // 处理错误 }
异常处理
异常处理使用 panic()
和 recover()
函数。panic()
会引发异常,而 recover()
可以捕获并处理该异常。
func myFunction() { // ... 进行一些操作 if condition { panic("发生了错误") } } func main() { defer func() { if err := recover(); err != nil { // 处理异常 } } myFunction() }
实战案例
错误处理:一个打开文件的函数,会返回 nil
func openFile(filename string) (*os.File, error) { file, err := os.Open(filename) if err != nil { return nil, err } return file, nil }
err
, vous devez explicitement vérifier les erreurs et les gérer si nécessaire. func makeRequest() { resp, err := http.Get("example.com") if err != nil { panic(err) } // 使用 resp 完成操作 }
panic()
et recover()
. panic()
lève une exception et recover()
peut intercepter et gérer l'exception. 🎜rrreee🎜🎜Cas pratique🎜🎜🎜🎜Gestion des erreurs : 🎜Une fonction qui ouvre un fichier renverra nil
pour indiquer un succès, et une valeur non nulle pour indiquer une erreur. 🎜rrreee🎜🎜Gestion des exceptions : 🎜Une fonction qui effectue une requête réseau et lève une exception lorsqu'une erreur est rencontrée. 🎜rrreeeCe 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!