L'utilisation de types d'erreur personnalisés dans Golang vous permet de créer des messages d'erreur plus descriptifs et exploitables spécifiques à votre application. Les étapes sont les suivantes : déclarer un type d'erreur personnalisé et implémenter l'interface d'erreur. Renvoie les erreurs personnalisées dans les fonctions. Recherchez les erreurs à l’aide de la fonction erreurs.Is() ou erreurs.As(). La gestion des erreurs et le débogage peuvent être simplifiés en personnalisant les types d’erreurs. Par exemple, dans une fonction de lecture de fichier, les erreurs personnalisées fournissent des informations d'erreur spécifiques au fichier.
Dans Golang, les types d'erreur sont utilisés pour représenter des échecs de fonctionnement ou des conditions anormales. Les types d'erreur personnalisés vous permettent de créer des messages d'erreur plus descriptifs et exploitables, spécifiques à votre application.
Créez un type d'erreur personnalisé :
Utilisez le mot-clé error
pour déclarer un type d'erreur personnalisé : error
关键字声明自定义错误类型:
type myError struct { message string }
实现 error
接口:
myError
类型必须实现 error
接口,即 Error()
方法:
func (e *myError) Error() string { return e.message }
使用自定义错误类型:
在函数或方法中返回自定义错误:
func myFunc() error { return &myError{message: "some error occurred"} }
处理自定义错误:
使用 errors.Is()
或 errors.As()
err := myFunc() if errors.Is(err, &myError{}) { // 自定义错误处理逻辑 }
Implémentez l'interface error
:
error
, c'est-à-dire la méthode Error()
: func readFile(path string) error { _, err := ioutil.ReadFile(path) if err != nil { return &myError{message: fmt.Sprintf("could not read file '%s': %v", path, err)} } return nil }
Utiliser un type d'erreur personnalisé :
Retour dans une fonction ou une méthode Erreurs personnalisées :err := readFile("file.txt") if errors.Is(err, &myError{}) { fmt.Println(err.Error()) }
Gestion des erreurs personnalisées :
🎜🎜Utilisez la fonctionerrors.Is()
ou errors.As()
pour vérifier pour les erreurs : 🎜could not read file 'file.txt': open file.txt: no such file or directory
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!