Maison > Article > développement back-end > Utiliser des assertions de type pour gérer différents types d'erreurs dans les fonctions Golang
Lors de la gestion de différents types d'erreurs dans les fonctions Go, vous pouvez utiliser des assertions de type pour vérifier le type réel d'une variable et la convertir au type requis. La syntaxe de l'assertion de type est : variable, ok := interfaceVariable.(type), où variable est la variable d'interface à vérifier, type est le type cible vers lequel convertir et ok est une valeur booléenne indiquant si la conversion est réussie. . Les assertions de type permettent d'exécuter différents chemins de code en fonction de différents types d'erreurs.
Utilisez des assertions de type pour gérer différents types d'erreurs dans les fonctions Go
Lors de la gestion de différents types d'erreurs dans les fonctions Go, vous pouvez utiliser des assertions de type. L'assertion de type est un mécanisme de vérification de type qui vous permet de vérifier le type réel d'une variable et de la convertir en type requis. Ceci est utile lorsque différents chemins de code doivent être exécutés en fonction de différents types d'erreurs.
Syntaxe
La syntaxe de l'assertion de type est la suivante :
variable, ok := interfaceVariable.(type)
variable
est la variable d'interface à vérifier. variable
是要检查的 interface 变量。type
是要转换到的目标类型。ok
是一个布尔值,表示转换是否成功。如果转换失败,ok
将为 false
。实战案例
考虑以下函数:
func doSomething() error { if err := someDependency.DoSomething(); err != nil { return err } return nil }
此函数调用 someDependency.DoSomething()
方法,该方法可能会返回不同类型的错误。为了根据错误类型执行不同的操作,我们可以使用类型断言:
func main() { if err := doSomething(); err != nil { switch err := err.(type) { case *myError1: // 执行错误1的处理代码 case *myError2: // 执行错误2的处理代码 default: // 执行默认的错误处理代码 } } }
在这个例子中,我们根据 err
的实际类型执行不同的代码路径。如果 err
是 *myError1
类型,则执行错误 1 的处理代码。如果 err
是 *myError2
类型,则执行错误 2 的处理代码。如果 err
type
est le type de cible vers lequel convertir.
ok
est une valeur booléenne indiquant si la conversion a réussi. Si la conversion échoue, ok
sera false
. 🎜🎜Cas pratique🎜🎜🎜Considérons la fonction suivante : 🎜rrreee🎜Cette fonction appelle la méthode someDependency.DoSomething()
, qui peut renvoyer différents types d'erreurs. Afin d'effectuer différentes actions en fonction du type d'erreur, nous pouvons utiliser des assertions de type : 🎜rrreee🎜 Dans cet exemple, nous effectuons différents chemins de code en fonction du type réel de err
. Si err
est de type *myError1
, alors le code de gestion de l'erreur 1 est exécuté. Si err
est de type *myError2
, alors le code de gestion de l'erreur 2 est exécuté. Si err
n'est pas l'un de ces deux types, le code de gestion des erreurs par défaut est exécuté. 🎜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!