Maison > développement back-end > Golang > Internationalisation dans la gestion des erreurs de la fonction Golang

Internationalisation dans la gestion des erreurs de la fonction Golang

王林
Libérer: 2024-05-05 09:24:02
original
790 Les gens l'ont consulté

Les fonctions GoLang peuvent effectuer l'internationalisation des erreurs via les fonctions Wrapf et Errorf du package d'erreurs, créant ainsi des messages d'erreur localisés et les ajoutant à d'autres erreurs pour former des erreurs de niveau supérieur. En utilisant la fonction Wrapf, vous pouvez internationaliser les erreurs de bas niveau et ajouter un message personnalisé, tel que « Erreur d'ouverture du fichier %s ».

Internationalisation dans la gestion des erreurs de la fonction Golang

Internationalisation dans la gestion des erreurs de la fonction GoLang

GoLang fournit un puissant mécanisme de gestion des erreurs, mais les messages d'erreur sont en anglais par défaut. Cela peut poser des problèmes pour les applications multilingues. Cet article décrit comment utiliser les fonctions Wrapf et Errorf dans le package errors pour l'internationalisation des erreurs. errors 包中的 WrapfErrorf 函数进行错误国际化。

使用 Errorf

Errorf 函数用于创建一个新的错误,其中包含格式化的错误信息。你可以使用此函数来创建本地化的错误消息:

import (
    "fmt"
)

func main() {
    err := fmt.Errorf("操作失败:%w", myError)
}
Copier après la connexion

以上代码创建一个新的错误,其中包含来自 myError 的错误消息。

使用 Wrapf

Wrapf 函数用于创建一个新的错误,其中包含格式化的错误附加到其他错误中。这对于将低级错误转换为更高级别的错误非常有用:

import (
    "errors"
    "fmt"
)

func main() {
    err := errors.Wrapf(myError, "文件打开失败:%w")
}
Copier après la connexion

以上代码创建一个新的错误,其中包含来自 myError 的错误消息,并追加 "文件打开失败" 消息。

实战案例

以下是使用错误国际化的一个实战案例:

import (
    "errors"
    "fmt"
    "io"
)

func main() {
    if err := readFile("file.txt"); err != nil {
        log.Println(err)
    }
}

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return errors.Wrapf(err, "打开文件 %s 出错", filename)
    }
    defer file.Close()

    //从文件中读取数据
}
Copier après la connexion

在这个例子中,readFile 函数使用 Wrapf 函数国际化了文件打开错误。当文件打开失败时,log.Println 将打印一条本地化的错误消息,告知用户无法打开该文件。

结论

通过使用 errors 包中的 WrapfErrorf

🎜Utilisation de Errorf🎜🎜🎜 La fonction Errorf est utilisée pour créer une nouvelle erreur contenant des informations d'erreur formatées. Vous pouvez utiliser cette fonction pour créer des messages d'erreur localisés : 🎜rrreee🎜Le code ci-dessus crée une nouvelle erreur contenant le message d'erreur de myError. 🎜🎜🎜Utilisation de Wrapf🎜🎜🎜 La fonction Wrapf est utilisée pour créer une nouvelle erreur avec des erreurs formatées ajoutées à d'autres erreurs. Ceci est utile pour convertir les erreurs de bas niveau en erreurs de niveau supérieur : 🎜rrreee🎜Le code ci-dessus crée une nouvelle erreur avec le message d'erreur de myError et ajoute le message "Échec de l'ouverture du fichier". 🎜🎜🎜Cas pratique🎜🎜🎜Ce qui suit est un cas pratique d'utilisation d'une mauvaise internationalisation : 🎜rrreee🎜Dans cet exemple, la fonction readFile internationalise le fichier à l'aide de la fonction Wrapf Erreur d'ouverture. Lorsqu'un fichier ne s'ouvre pas, log.Println imprimera un message d'erreur localisé informant l'utilisateur que le fichier ne peut pas être ouvert. 🎜🎜🎜Conclusion🎜🎜🎜Vous pouvez facilement internationaliser les erreurs dans les fonctions GoLang en utilisant les fonctions Wrapf et Errorf à partir des informations du package errors. Ceci est important pour les applications multilingues car cela permet aux utilisateurs de voir des messages d'erreur significatifs dans leur propre langue. 🎜

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