Golang.org 有一篇关于如何做到这一点的博文:http : //blog.golang.org/error-handling-and-go
他们基本上制作了一种新类型
type appHandler func(http.ResponseWriter, *http.Request) error
它像这样实现了 http.Handler 接口
func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if err := fn(w, r); err != nil {
http.Error(w, err.Error(), 500)
}
}
有了这个,你就可以在你的 handleFunc 上返回错误,这很棒。
但我使用的是 julienschmidt httprouter,它使用一个函数而不是一个实现 http.Handler 的接口。我喜欢使用这个路由器,因为它支持命名参数。
如何在 httprouter.Handler 函数周围包装“东西”,以便我可以返回错误并返回其他东西?
有没有办法做到这一点,以防止重复的错误处理?我找不到办法。
慕哥6287543
相关分类