首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Go Error 的处理最佳实践

Go 的 error 和 Java 的 Exception 最明显的区别在于:原生库不携带 stacktrace原生库不支持 Wrap这给程序 debug 带来了一些麻烦,因此我们会使用 github.com...但又因第三方库的 error 大概率没有使用 github.com/pkg/errors,处理方式不一致会造成麻烦,下面定义一套规则来统一:自己 new 的 error,根据情况包含 stacktrace...自己 new 的 error,根据情况包含 stacktrace如果把 error 当作一种返回值,那么这种情况下不需要 stacktrace,比如:import "errors"// 关闭订单func...不要 wrap 自己代码返回的 errorwrap error 的目的是给 error 包上 stacktrace。...而当你调用自己写的代码时,被调代码自身就已经决定了是否携带 stacktrace(见前一条),那么在这里就不用再 wrap 了。

44830
领券