Maison > développement back-end > Golang > Comment utiliser les types d'erreur personnalisés dans Golang ?

Comment utiliser les types d'erreur personnalisés dans Golang ?

WBOY
Libérer: 2024-06-06 10:53:57
original
1085 Les gens l'ont consulté

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.

如何在 Golang 中使用自定义错误类型?

Utilisation de types d'erreur personnalisés dans Golang

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
}
Copier après la connexion

实现 error 接口:

myError 类型必须实现 error 接口,即 Error() 方法:

func (e *myError) Error() string {
    return e.message
}
Copier après la connexion

使用自定义错误类型:

在函数或方法中返回自定义错误:

func myFunc() error {
    return &myError{message: "some error occurred"}
}
Copier après la connexion

处理自定义错误:

使用 errors.Is()errors.As()

err := myFunc()
if errors.Is(err, &myError{}) {
    // 自定义错误处理逻辑
}
Copier après la connexion

Implémentez l'interface error :

< code> Le type myError doit implémenter l'interface 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
}
Copier après la connexion

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())
}
Copier après la connexion

Gestion des erreurs personnalisées :

🎜🎜Utilisez la fonction errors.Is() ou errors.As() pour vérifier pour les erreurs : 🎜
could not read file 'file.txt': open file.txt: no such file or directory
Copier après la connexion
🎜🎜 Cas pratique : 🎜🎜🎜Envisagez une fonction de lecture de fichier : 🎜rrreee🎜🎜Utilisation : 🎜🎜rrreee🎜Sortie : 🎜rrreee🎜En personnalisant les types d'erreurs, vous pouvez créer des messages d'erreur plus descriptifs et exploitables, ainsi Simplifiez la gestion des erreurs et le débogage. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal