首页 > 后端开发 > Golang > 如何在 Go 中对自定义错误执行类型断言?

如何在 Go 中对自定义错误执行类型断言?

Patricia Arquette
发布: 2024-12-24 01:06:11
原创
267 人浏览过

How to Perform Type Assertions for Custom Errors in Go?

Go 中自定义错误处理的类型断言

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板