Documentation
¶
Overview ¶
Package errorhandler 提供自定义错误页面的功能
Index ¶
- func Exit(status int)
- func WriteHeader(w http.ResponseWriter, status int)
- type ErrorHandler
- func (e *ErrorHandler) Add(f HandleFunc, status ...int) (ok bool)
- func (e *ErrorHandler) Middleware(next http.Handler) http.Handler
- func (e *ErrorHandler) MiddlewareFunc(next func(http.ResponseWriter, *http.Request)) http.Handler
- func (e *ErrorHandler) Recovery(rf recovery.RecoverFunc) recovery.RecoverFunc
- func (e *ErrorHandler) Render(w http.ResponseWriter, status int)
- func (e *ErrorHandler) Set(f HandleFunc, status ...int)
- type HandleFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Exit ¶
func Exit(status int)
Exit 退出当前的协程
status 表示输出的状态码,如果为 0,则不会作任何状态码输出。
Exit 最终是以 panic 的形式退出,所以如果你的代码里截获了 panic, 那么 Exit 并不能达到退出当前请求的操作。
func WriteHeader ¶
func WriteHeader(w http.ResponseWriter, status int)
WriteHeader 写入 HTTP 状态值
通过 errorhandler 的封装之后,默认会将大于等于 400 状态值的响应重定向到指定的处理函数,如果不需要特殊处理, 可以调用此函数,按照正常流程处理。
Types ¶
type ErrorHandler ¶
type ErrorHandler struct {
// contains filtered or unexported fields
}
ErrorHandler 错误页面处理函数管理
NOTE: 外层必须包含由 ErrorHandler.Recovery 声明的 recovery 中间件。 一旦写入由 ErrorHandler 托管的状态码,会直接中间整个中间件链的执行以 panic 的形式退出, 直接被 recovery 捕获。
func (*ErrorHandler) Add ¶
func (e *ErrorHandler) Add(f HandleFunc, status ...int) (ok bool)
Add 添加针对指定状态码的错误处理函数
NOTE: 如果指定了 400 以下的状态码,那么该状态码也会被当作错误页面进行托管。
func (*ErrorHandler) Middleware ¶
func (e *ErrorHandler) Middleware(next http.Handler) http.Handler
Middleware 将当前中间件应用于 next
func (*ErrorHandler) MiddlewareFunc ¶
func (e *ErrorHandler) MiddlewareFunc(next func(http.ResponseWriter, *http.Request)) http.Handler
MiddlewareFunc 将当前中间件应用于 next
func (*ErrorHandler) Recovery ¶
func (e *ErrorHandler) Recovery(rf recovery.RecoverFunc) recovery.RecoverFunc
Recovery 生成一个可正确处理错误页面的 recovery.RecoverFunc 函数
NOTE: ErrorHandler 最终是以特定的 panic 形式退出当前处理进程的, 所以必须要有 recover 函数捕获该 panic,否则会导致整个程序直接退出。 我们采用与 recovery 相结合的形式处理 panic,所以在 ErrorHandler 的外层必须要有一个由 ErrorHandler.Recovery 声明的 recovery.RecoverFunc 中间件。
func (*ErrorHandler) Render ¶
func (e *ErrorHandler) Render(w http.ResponseWriter, status int)
Render 向客户端输出指定状态码的错误内容
func (*ErrorHandler) Set ¶
func (e *ErrorHandler) Set(f HandleFunc, status ...int)
Set 添加或修改指定状态码对应的处理函数
有则修改,没有则添加,如果 f 为 nil,则表示删除该状态码的处理函数。
NOTE: 如果指定了 400 以下的状态码,那么该状态码也会被当作错误页面进行托管。