Golang Go语言中的 web app error 处理

发布于 1周前 作者 gougou168 来自 Go语言

Golang Go语言中的 web app error 处理
这篇文章是我对 Bill Kennedy, <<Go 语言实战>>作者,关于 Web App 中处理 error 方法的总结。方法来自他的高阶收费课程 Ardan Labs Service 2.0, 源码在 https://github.com/ardanlabs/service
ardanlabs/service 提供了我自认为是最好的 design pattern 。 我将我几个项目从 mvc 改成了它的架构以后,十分舒服,logging+error handling 都是从底层开始,处理方式始终如一,规范。我认为 ardan labs 的几个 golang 课程都是市面上最好的高阶进阶课程,没有之一。Bill 从严谨的工程设计角度讲解代码。

-------------------------------------------------------------------------------------------------
" Do things that are easier to understand, not easier to do"
“代码要容易被理解,而不是更容易写”
_Bill Kennedy

-------------------------------------------------------------------------------------------------
几天前那位兄弟写了一篇 error 处理的方法, 贴子里莫名其妙就和别人吵了起来。我觉得还是写点有用的。
-------------------------------------------------------------------------------------------------
ardanlabs/service repo 非常值得学习,尤其是中间件的使用方式
-------------------------------------------------------------------------------------------------

https://medium.com/p/f6a9fb74a4c7


更多关于Golang Go语言中的 web app error 处理的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

17 回复

这个作者的课程是不错,不过太贵了,一直没买

更多关于Golang Go语言中的 web app error 处理的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


哦哦 我记得你… 今天晚上拜读一下.

#2 填问卷可以获得免费授权?

“代码要容易被理解,而不是更容易写” 说的真好. 写代码的时候简洁一点不要用什么黑科技, 读代码的时候就更轻松一些.

去 twitter 跟 Bill 直接开聊, 要 discount 。 官网的价格一般都是对公司采购的

视频怎么买的啊,我看官网好贵。。。

有句话不知道当讲不当讲,请问我可以有白嫖的想法吗

咋和 bill 聊?直接在他推下回复吗?没怎么用过推

直接回复就行了。 有互动他,他都会回你。

感觉课程不错,奈何听力有点差

记得 lz 在我帖子里回复过,感谢推荐

这个课买了只有一年有效期吗?

肯定不是啊。3.0 就要出了, 你找作者聊聊

楼主还有什么 react ,js 相关课程推荐么?

入门都是 udemy 的 Stephen Grider 都可以, 高阶一点的 kent c dodds

在Golang(Go语言)中处理web应用的错误是至关重要的,它直接影响到应用的稳定性和用户体验。以下是几种常见的错误处理策略:

  1. 使用中间件:通过中间件可以统一处理HTTP请求中的错误。例如,可以使用http.HandlerFunc来编写一个中间件,它检查每个请求的上下文(context)或响应状态码,如果检测到错误,则进行相应的处理(如记录日志、返回错误信息)。

  2. 自定义错误类型:定义自己的错误类型,可以实现更精细的错误控制。例如,通过实现error接口,你可以添加额外的字段(如错误码、用户消息等),这些字段可以在返回给客户端时序列化。

  3. 利用panic和recover:虽然不推荐作为常规错误处理手段,但在某些情况下(如无法恢复的编程错误),panicrecover可以挽救应用免于崩溃。使用deferrecover可以在函数或goroutine中捕获panic,进行必要的清理工作后安全地恢复执行。

  4. 客户端错误处理:在客户端,通过HTTP状态码和响应体中的错误信息,可以区分不同类型的错误,并向用户展示相应的提示信息。例如,404表示资源未找到,500表示服务器内部错误。

  5. 日志记录:对所有错误进行日志记录,可以帮助开发者快速定位问题。使用像logruszap这样的日志库,可以更方便地管理日志级别、输出格式和存储位置。

总之,良好的错误处理策略是构建健壮、可维护的web应用的基础。

回到顶部