我正在使用它,但感觉不对:
if err, ok := err.(net.Error); ok {
var message string
if err.Timeout() {
message = "Timeout"
} else if strings.HasSuffix(err.Error(), "no such host") {
message = "No such host"
}
}
是否有更惯用的方式?
答案 0 :(得分:1)
我认为您可以使用DNSError类型而不是普通Error
。
err, ok := err.(net.DNSError)
答案 1 :(得分:0)
您可以使用此代码检查DNS错误。例如,如果 err 是我们的错误:
if err, ok := err.(*url.Error); ok {
if err, ok := err.Err.(*net.OpError); ok {
if _, ok := err.Err.(*net.DNSError); ok {
retry(r)
}
}
}