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 關注
- 145 瀏覽
添加回答
舉報