我正在 Go 中启动 SSH 客户端连接,并在返回错误时尝试访问详细的错误数据。
我目前正在使用此代码:
client, err := ssh.Dial("tcp", "unknownserver:22", config)
if err != nil {
if oerr, ok := err.(*net.OpError); ok {
a := oerr.Err
fmt.Printf("%#v\n", a)
}
log.Fatal("Failed to dial: " + err.Error())
}
它返回这两行错误数据:
&net.DNSError{Err:"no such host", Name:"unknownserver", Server:"", IsTimeout:false, IsTemporary:false}
2016/06/23 11:59:00 Failed to dial: dial tcp: lookup unknownserver: no such host
我正在尝试使用以下方法打印net.DNSErrorName中的字段内容:
fmt.Println(a.Name)
但是,当尝试编译代码时,出现此错误:
a.Name undefined (type error has no field or method Name)
如果oerr是net.OpError类型的结构并且oerr.Err是 net.DNSError 类型的结构并且具有字段{Err:"no such host", Name:"unknownserver", Server:"", IsTimeout:false, IsTemporary:false},是否可以访问该结构的字段?还是我在这里误解了一个关键概念?
精慕HU
相关分类