Closed z2n closed 5 years ago
你可以用 err.Cause()获得topmost error https://godoc.org/github.com/pkg/errors#Cause
可是和其他接口合作时它们接收到一个非 EOF 错误, 就会做一些其他处理(比如 error 日志输出, 提前返回等).
如上面的 net/http/httputil/reverseproxy 在遇到非 EOF 错误时就会输出 error 日志, 继而 panic 根本没有机会获取 err.Cause()
.
你可以wrap一下,接口桥接, 但reverseproxy直接判定io.EOF,可以说是相当大胆的写法。
你好, 我遇到一个问题,
Stream.Read
返回的EOF
是errors.WithStack
包装后 的, 导致和其他一些库使用时得到错误的判断, 如: reverseproxy.go 是设计有误, 还是我用的方法错了?