Oui, vous pouvez définir des types d'erreur personnalisés dans Go en créant une structure qui implémente l'interface d'erreur et en fournissant la méthode Error() pour renvoyer un message d'erreur. Des types d'erreur personnalisés peuvent être créés à l'aide de la fonction error.New ou d'un type personnalisé. En pratique, les types d'erreur personnalisés peuvent fournir des messages d'erreur plus spécifiques et significatifs, améliorant ainsi la convivialité et la maintenabilité de l'application.
Dans Go, les erreurs sont généralement représentées via l'interface erreur
intégrée. Cependant, il est parfois nécessaire de définir des types d'erreur personnalisés spécifiques à l'application. Cet article décrit comment créer un type d'erreur personnalisé et fournit un cas pratique. error
接口表示。但是,有时需要定义特定于应用程序的自定义错误类型。本文介绍如何创建自定义错误类型,并提供一个实战案例。
创建自定义错误类型
自定义错误类型可以通过创建实现 error
接口的结构体来实现。
type MyError struct { msg string } func (e *MyError) Error() string { return e.msg }
Error() string
方法返回错误消息,这是 error
接口的一个要求。
用法
自定义错误类型可以使用 errors.New
Créer des types d'erreur personnalisés
Les types d'erreur personnalisés peuvent être implémentés en créant une structure qui implémente l'interface erreur
.
err := errors.New("my error message")
Error() string
renvoie un message d'erreur, ce qui est une exigence de l'interface error
. Utilisation
Des types d'erreur personnalisés peuvent être créés à l'aide de la fonction errors.New
, qui accepte un paramètre de chaîne comme message d'erreur.
err := &MyError{msg: "my error message"}
type InvalidAgeError struct { msg string } func (e *InvalidAgeError) Error() string { return e.msg }
Scénario :
Validez l'âge renseigné par l'utilisateur.Type d'erreur :
func ValidateAge(age int) error { if age < 18 { return &InvalidAgeError{msg: "年龄必须大于或等于 18"} } return nil }
age := 15 err := ValidateAge(age) if err != nil { fmt.Println("错误:", err) } else { fmt.Println("年龄已验证") }
错误:年龄必须大于或等于 18
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!