登录
首页 >  Golang >  Go问答

去检查自定义错误的类型

来源:Golang技术栈

时间:2023-04-28 06:54:25 201浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《去检查自定义错误的类型》,这篇文章主要讲到golang等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我很难在 Go 中使用自定义错误类型。我读了这篇[关于错误的博客文章](http://blog.golang.org/error-handling-and- go)

所以我尝试了这个:

在我的 model.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"}
...

在该方法的调用者中,我想检查其类型返回的错误,如果它实际上是一个ModelMissingError.

我怎样才能做到这一点?

我试过这个:

if err == model.ModelMissingError 

结果是*type model.ModelMissingError is not an expression*

显然我错过了一些东西。

正确答案

阅读博客文章进一步揭示了一些像这样的 Go:

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

这是逗号 ok 成语,显然我需要重新做我的go lang tour

今天关于《去检查自定义错误的类型》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表