errwrap 提供了对常用对象需要连续处理 error 的简单封闭。
buf := new(bytes.Buffer)
w := errwrap.Writer{
Writer: buf,
}
w.WString("string").
WBytes([]byte("bytes")).
Printf("format %d", 123)
if w.Err != nil { // 由此处统一处理错误
// TODO
}
go get github.com/issue9/errwrap