【发布时间】:2022-11-26 16:25:26
【问题描述】:
我对路由进行了一些包装
func (p Page) MainInitHandlers() {
http.HandleFunc("/", p.mainHandler)
http.HandleFunc("/save", p.saveHandler)
}
如果我的 hadlers(mainHandler、saveHandler)内部发生错误,我能以某种方式得到它吗?我想进一步返回该错误并进行分析
err := MainInitHandlers
有可能吗?
【问题讨论】:
-
http.HandleFunc只注册参数,它不执行它们,因此它在那些注册的处理程序中出现任何错误之前返回。如果您错误地碰巧在同一模式下注册了多个处理程序,http.HandleFunc将会崩溃。 -
如果处理程序遇到错误,它通常会通过
http.ResponseWriter参数向客户端报告。但是,如果你想集中处理错误,你可以使用“中间件”。
标签: go httphandler