errorhandler

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2020 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package errorhandler 提供自定义错误处理功能

net/http 包中对于错误的处理是通过 http.Error() 进行的, 我们无法直接修改该方法,实现自定义的错误处理功能。 只能对 http.ResponseWriter.WriteHeader() 进行自定义, 在指定的状态下,抛出异常,再通过 recover 实现错误处理。

需要注意的是,如果采用了当前包的方案,那么默认情况下, 所有大于 400 的 WriteHeader 操作,都会被 panic, 如果你对某些操作不想按正常流程处理,可以使用 errorhandler.WriteHeader 代替默认的 ResponseWriter.WriteHeader 操作。

Index

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 added in v1.3.0

func WriteHeader(w http.ResponseWriter, status int)

WriteHeader 写入 HTTP 状态值

通过 errorhandler 的封装之后,默认会将大于等于 400 状态值的响应重定向到指定的处理函数,如果不需要特殊处理, 可以调用此函数,按照正常流程处理。

Types

type ErrorHandler

type ErrorHandler struct {
	// contains filtered or unexported fields
}

ErrorHandler 错误处理函数的管理

func New

func New() *ErrorHandler

New 声明 ErrorHandler 变量

func (*ErrorHandler) Add

func (e *ErrorHandler) Add(f HandleFunc, status ...int) error

Add 添加针对特写状态码的错误处理函数

func (*ErrorHandler) New

func (e *ErrorHandler) New(next http.Handler) http.Handler

New 构建一个可以捕获错误状态码的 Handler

NOTE: 要求在最外层

func (*ErrorHandler) NewFunc

func (e *ErrorHandler) NewFunc(next func(http.ResponseWriter, *http.Request)) http.Handler

NewFunc 构建一个可以捕获错误状态码的 Handler

NOTE: 要求在最外层

func (*ErrorHandler) Recovery

func (e *ErrorHandler) Recovery(errlog *log.Logger) recovery.RecoverFunc

Recovery 生成一个 recovery.RecoverFunc 函数用于捕获由 panic 触发的事件

errlog 表示输出调用堆栈信息到日志。可以为空,表示不输出信息。

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 设置指定状态码对应的处理函数

有则修改,没有则添加

type HandleFunc

type HandleFunc func(http.ResponseWriter, int)

HandleFunc 错误处理函数,对某一固定的状态码可以做专门的处理

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL