首页 >后端开发 >Golang >如何检查Go中自定义错误的类型?

如何检查Go中自定义错误的类型?

Linda Hamilton
Linda Hamilton原创
2024-12-25 20:43:19763浏览

How Can I Check the Type of a Custom Error in Go?

在 Go 中自定义错误类型

使用自定义错误类型丰富 Go 应用程序可以增强错误处理,但操作这些自定义类型可能具有挑战性。让我们深入研究检查自定义错误类型的问题。

问题

考虑以下自定义错误类型:

type ModelMissingError struct {
    msg string // description of error
}

func (e *ModelMissingError) Error() string { return e.msg }

在一个方法中,我们可以抛出自定义错误:

return Model{}, &ModelMissingError{"no model found for id"}

查询

To确定错误是否是特定的自定义类型,我们需要检查其类型。然而, if err == model.ModelMissingError 的方法失败了。

解决方案

Go 提供了 comma ok idiom 来检查类型断言:

serr, ok := err.(*model.ModelMissingError)

该语句断言错误变量 err 持有 model.ModelMissingError 类型并且将基础值分配给变量 serr。如果 err 不符合预期的类型,则该语句将为 serr 返回 nil,为 ok 返回 false。

通过使用逗号 ok 习惯用法,我们可以有效地验证自定义错误的类型并进行相应的处理。

以上是如何检查Go中自定义错误的类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn