在 Go 中,自定义错误类型允许更具体的错误处理。然而,检查错误的确切类型可能具有挑战性。本文解决了如何对自定义错误执行类型断言的问题。
该问题重点介绍了如何使用自定义 ModelMissingError 类型来表示缺失的模型错误。抛出此错误的方法的调用者希望检查其类型并采取相应的操作。
问题中提供的代码片段使用相等运算符 (==) 将错误变量与 ModelMissingError 类型进行比较,这会导致错误“type model.ModelMissingError is not an expression.”
解决方案在于在类型断言中使用“comma ok idiom”。以下代码演示了如何执行此操作:
serr, ok := err.(*model.ModelMissingError)
此语法断言接口变量 err 持有 *model.ModelMissingError 类型的具体值,并将基础值分配给 serr。它还为 ok 分配一个布尔值,以指示断言是否成功。
“comma ok idiom”允许您检查错误的确切类型,而不会在类型断言失败时触发恐慌。如果 ok 为 true,则错误属于预期类型,您可以根据 serr 采取适当的操作。
通过利用类型断言和“comma ok idiom”,您可以有效地检查中的自定义错误类型相应地处理它们,为错误处理提供更大的灵活性和精确度。
以上是如何在 Go 中对自定义错误执行类型断言?的详细内容。更多信息请关注PHP中文网其他相关文章!