【问题标题】:Golang. How to handle errors from http.HandleFunc?戈朗。如何处理来自 http.HandleFunc 的错误?
【发布时间】: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


【解决方案1】:

这些函数不能返回错误,并且在您尝试使用返回值时调用它们,仅注册为处理程序。所以不,您无法从中获取错误信息。您在处理 HTTP 请求时可能遇到的错误类型应该在处理函数中处理,通常是通过向客户端返回错误代码并发出某种日志消息或警报供您的开发人员响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2014-12-05
    • 2019-08-26
    相关资源
    最近更新 更多