La gestion des erreurs dans Go est implémentée via le type d'erreur, qui fournit la méthode Error() pour renvoyer les informations d'erreur. Il existe deux méthodes de gestion des erreurs : Vérification explicite : utilisez les instructions if pour rechercher les erreurs et les gérer. Propagation des erreurs : les erreurs sont transmises à la fonction appelante, qui décide comment les gérer.
Gestion des erreurs dans les fonctions Go
Dans Go, les erreurs sont généralement représentées par le type d'erreur spécial. Ce type implémente l'interface error
et fournit la méthode Error()
pour renvoyer les informations d'erreur. error
接口,提供 Error()
方法返回错误信息。
错误处理方法
Go 中有两种主要的方法来处理错误:
if
语句检查错误并根据需要进行处理。显式检查
以下是如何显式检查错误的方法:
func checkError(err error) { if err != nil { // 处理错误 } }
错误传播
要传播错误,只需将其返回给调用方函数。调用方函数可以根据需要进行处理或进一步传播错误:
func openFile(filename string) (file *os.File, err error) { file, err = os.Open(filename) return } func main() { f, err := openFile("test.txt") if err != nil { fmt.Println(err) } else { // 使用 file } }
最佳实践
实战案例
考虑一个读写文件的函数:
func readFile(filename string) (content []byte, err error) { data, err := os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("无法读取文件: %w", err) } return data, nil }
此函数使用 fmt.Errorf
if
pour vérifier les erreurs et procéder si nécessaire traiter avec. fmt.Errorf
pour créer une nouvelle erreur, avec l'erreur d'origine comme cause sous-jacente. Cela nous permet d'ajouter des informations supplémentaires tout en conservant le contexte d'erreur d'origine. 🎜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!