相关疑难解决方法(0)

去检查自定义错误的类型

我很难在Go中使用自定义错误类型.我阅读了关于错误的博客文章

所以我尝试了这个:

在我的模型中.我定义了一个自定义错误:

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

func (e *ModelMissingError) Error() string { return e.msg }
Run Code Online (Sandbox Code Playgroud)

在我的一个方法中,我抛出一个这样的自定义错误:

...
return Model{}, &ModelMissingError{"no model found for id"}
...
Run Code Online (Sandbox Code Playgroud)

在该方法的调用者中,我想检查为其类型返回的错误,如果它实际上是a,则采取措施ModelMissingError.

我怎样才能做到这一点?

我试过这个:

if err == model.ModelMissingError 
Run Code Online (Sandbox Code Playgroud)

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

显然我错过了一些东西.

error-handling go

24
推荐指数
6
解决办法
2万
查看次数

如何检查特定的 golang net/http 错误代码?

package main

import "net/http"

func main() {
     req, err := http.NewRequest("GET", "http://domain_does_not_exist", nil)
     if err != nil { panic("NewRequest") }
     client := http.Client{ }
     _, err = client.Do(req)
     if err == ???
}
Run Code Online (Sandbox Code Playgroud)

我想检查我的 GET 请求是否有特定错误(DNS 解析错误)。如何做到这一点?

http go

1
推荐指数
1
解决办法
2420
查看次数

标签 统计

go ×2

error-handling ×1

http ×1