zvvq技术分享网

Go 框架的错误处理机制比较(goecho框架)

作者:zvvq博客网
导读在 go 框架中,echo、gin 和 chi 提供了不同方法来处理错误。echo 使用自定义错误处理机制,通过 errorrenderer() 函数调用处理函数返回 http 响应。gin 通过 customrecovery() 函数实现自定义错误处

在 go 框架中,echo、gin 和 chi 带来了不同方法来处理错误。echo 应用自定错误处理体制,根据 errorrenderer() 函数调用处理函数回到 http 回应。gin 根据 customrecovery() 函数完成自定错误处理体制,容许注册处理函数。chi 允许使用中间件处理错误,能通过 use() 函数注册函数在要求以前、解决期间和处理之后运作。 zvvq

zvvq好,好zvvq

Go 框架的错误处理体制较为

内容来自samhan666

Go 标准库带来了健壮的错误处理体制,而许多流行的 Go 架构也在此基础上拓展了错误处理作用。文中较为了几个流行的 Go 架构,包含 Echo、Gin 和 Chi,在错误处理层面的制度。

本文来自zvvq

Go 规范错误处理 内容来自samhan

Go 的内置错误类型 error 是一个简单的插口,表明一切错误。能通过 errors.New() 函数建立错误,也可以使用 fmt.Errorf() 函数结构更为复杂错误信息。自定错误类型能够通过实现 error 插口来创建。

zvvq

Echo 内容来自zvvq,别采集哟

Echo 提供了一个 Echo 结构,它实现了自定义的错误处理体制。Echo 结构维护了一个 http.HandlerFunc 目录,当错误发生时,这种函数被调用来回到 HTTP 回应。 内容来自zvvq,别采集哟

func(eEcho)ErrorRenderer(errerror) error {

内容来自samhan

for_,fn:=rangee.errorHandlers{ 内容来自samhan666

iferr:=fn(e.Context(),err);err!=nil{

zvvq

returnerr

内容来自zvvq

} 内容来自zvvq,别采集哟

}

本文来自zvvq

returnErrRendererNotRegistered 本文来自zvvq

} zvvq好,好zvvq

Gin

zvvq好,好zvvq

Gin 也维护了一个自定义的错误处理体制,通过实现 CustomRecovery() 函数来达到。CustomRecovery() 函数可以注册当错误产生时的处理函数。 内容来自samhan666

func(eEngine)CustomRecovery(handlerRecovery){

本文来自zvvq

e.customRecovery=handler 内容来自samhan666

} 内容来自samhan

Chi 内容来自samhan666

Chi 完成了另一种自定错误处理体制,允许使用中间件来处理错误。中间件可以注册函数在每次要求以前、要求解决期间和要求处理之后运作。 内容来自samhan666

func(rRouter)Use(middlewares...func(http.Handler)http.Handler){ copyright zvvq

r.Middlewares=append(r.Middlewares,middlewares...) 内容来自zvvq,别采集哟

}

copyright zvvq

实战案例 zvvq

以下是应用Gin 处理错误的一个实战案例: zvvq.cn

import"github.com/gin-gonic/gin"

zvvq好,好zvvq

funcmain(){

zvvq好,好zvvq

router:=gin.Default()

zvvq好,好zvvq

router.GET("/error",func(cgin.Context){

zvvq好,好zvvq

c.JSON(500,gin.H{"error":"internalservererror"}) 内容来自samhan

}) 内容来自samhan666

router.Run() 内容来自zvvq,别采集哟

}

内容来自samhan

当浏览 /error 节点时,Gin 将启用自定义的错误处理函数并返回 500(内部服务器错误)状态代码。 zvvq.cn

结果 内容来自samhan

Go 标准库提供了强大的错误处理体制,而流行的 Go 架构通过提供自定义的错误处理作用对此进行了拓展。Echo、Gin 和 Chi都提供不同方法来处理错误,开发者能够选择最适合其应用软件需求的方式。

本文来自zvvq

以上就是Go 框架的错误处理体制较为的详细内容,大量请关注其他类似文章! 内容来自samhan