2 回答
TA贡献1827条经验 获得超8个赞
var e *url.Error
if errors.As(err, &e) && strings.HasPrefix(e.Err.Error(), "unsupported protocol scheme") {
//add protocol scheme to url string
}
https://play.golang.org/p/VKpMfrBp_EF
请注意,与非标准化字符串的比较不应被视为面向未来的。例如,如果 Go 的未来版本决定更改该错误消息的措辞,则您的代码将中断。
虽然Go确实承诺跨版本兼容,但我不认为这个承诺延伸到字符串内容。
TA贡献1810条经验 获得超5个赞
可用于返回字符串。并检查它是否包含一个辣键,如下所示:err.Error()
if err = db.Ping(); err != nil {
switch {
case strings.Contains(err.Error(), "connection refused"):
// handle connection refused. for example:
cmd := exec.Command("sudo", "service", "mariadb", "start")
_ = cmd.Run()
default:
log.Println("unknown kind of this error", err)
}
}
在你的情况下,你可以尝试这样的事情:
err := http.Get(url)
if strings.Contains(err.Error(), "unsupported protocol scheme") {
//add protocol scheme to url string
}
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
