gpt4 book ai didi

golang 惯用的方法来检测没有这样的主机错误

转载 作者:IT王子 更新时间:2023-10-29 01:41:45 26 4
gpt4 key购买 nike

我正在使用它,但感觉不对:

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"
}
}

有没有更惯用的方法?

最佳答案

从 Go 1.13 开始:您可以使用 errors.As

var dnsError *net.DNSError
if errors.As(err, &dnsError) {
fmt.Println("DNS Error", dnsError)
}

原答案:

您可以使用此代码检查 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)
}
}
}

关于golang 惯用的方法来检测没有这样的主机错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41669475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com