rower

rower

V2EX 第 501750 号会员,加入于 2020-07-31 14:07:20 +08:00
根据 rower 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
rower 最近回复了
17 天前
回复了 aababc 创建的主题 程序员 golang 中 error 如何影响 log 和 api 状态
第二点,就是首先需要有自己的自定义错误类型,参考
https://github.com/ardanlabs/service6-video/tree/main/app/api/errs
然后每种错误对应的 http 状态码
参考
https://github.com/ardanlabs/service6-video/blob/main/api/http/api/mid/errors.go
的 init() 函数

最后在 Error 的中间件中对错误进行判断,如果是自定义错误,返回错误和对应的状态码,如果不是,返回 500
17 天前
回复了 aababc 创建的主题 程序员 golang 中 error 如何影响 log 和 api 状态
第一个对于 web 的错误,比较好的做法是创建一个 Error 的中间件统一处理,在 gin 中,我的用法如下

func CreateUser(mobile string) (*User) {
exists, err := mobileExists(mobile)
if err != nil {
// 这个 c 是 gin 的 context ,一般 mobile 这个请求参数是从 c 获得的,这里忽略那些细节,记录错误就是 c.Error()
c.Error(err)
return nil
}
if exists {
c.Error(err)
return nil
}
// ...
}
// 中间件处理错误
func Errors(log *logger.Logger) gin.HandlerFunc {
return func(c *gin.Context) {

ctx := c.Request.Context()


if len(c.Errors) > 0 {
// 处理第一个错误
// 在 gin 中,错误是一个数组,这里只处理第一个错误,一般来说我们在程序中遇到错误时,只会返回一个错误
// 如果出现了例外情况,那么我们需要修改这里的代码
err := c.Errors[0].Err
// 记录错误
log.Error(ctx, "message", "ERROR", err.Error())
}


}
346 天前
回复了 Hmmmmmmm 创建的主题 生活 求推荐,买箱酒孝敬老爹
先搞清楚你爸喜欢什么口味的酒,有酱香酒,茅台之类的,有浓香型的酒,五粮液,剑南春,海之蓝,有清香型的,青花汾 20 。选的味不对,再贵也没用。
349 天前
回复了 yinwenjian 创建的主题 生活 关于为什么总觉得时间过的飞快
有点东西,兄弟
@harry890829 ok ,这个我知道了,源码在新的镜像中,便于分发
@morenacl 没毛病
2023-11-21 10:06:27 +08:00
回复了 rower 创建的主题 开源软件 我发现谷歌,微软, FB 等这些大公司是不用一些开源软件的
@forvvvv123 有些道理
@rsy
好的,这两个感觉可以
@forvvvv123
@terrysnake
@hokori
mac 的话感觉是不是一些软件不兼容
2022-09-16 16:43:48 +08:00
回复了 aw2350 创建的主题 问与答 十月准备出去面后端了,求面经
github 搜索:go interview 或者 go 面试
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2830 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 06:30 · PVG 14:30 · LAX 22:30 · JFK 01:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.