创新互联GoFrame教程:GoFrame框架设计-全错误堆栈设计

一、项目错误处理痛点

我们在业务项目中,经常会遇到以下痛点。

“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联公司是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都做网站、网站制作、成都外贸网站建设、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!

1、缺少统一错误处理方案,代码中随处可见的日志打桩

为了方便接口出错时定位问题,代码中随处可见的日志打桩,并将其看做是一件理所当然的事,影响着后续项目维护的思路。

2、请求执行报错后缺少错误堆栈,难以快速定位问题

如下,当底层出现​error​级别的错误时,在顶层看到的就一个错误信息,请问如何排查?

3、第三方组件执行返回的错误,本身不带有堆栈信息

不仅仅是第三方组件,连标准库所有方法返回的​error​都不带有堆栈,这对业务层统一错误处理造成了很大的挑战。几乎所有业务层代码调用返回的错误,都需要使用类似于​Wrap​方法再包裹一层,以便于业务层自己可以实现错误堆栈返回。这样的维护成本比较大,几乎只能靠​CodeReview​来人肉保障,一不小心可能会漏掉​Wrap​处理。

4、错误组件多样,自身项目往往还想当然再封装一层

错误处理的第三方组件也比较多,如何选择?甚至业务项目往往也想自己再封装一层,进一步提高错误处理组件的维护成本。

二、框架全错误堆栈设计

1、统一错误组件

GOFrame​框架提供了业内功能最强大的错误处理组件,并且该组件也是框架内部广泛使用的错误组件,降低业务团队的选择成本。

2、统一错误处理方案

GoFrame​框架提供了强大的工程设计规范,其中包含了必要的统一的错误处理方案。按照统一框架的工程设计,一些通用性的痛点已通过组件、工具的方式得以解决,使得业务团队能够将精力聚焦于业务本身,开发将会事半功倍。

在统一的错误处理方案下,项目中所有的方法调用将会以​error​返回值作为执行成功与否的依据。如果​error​不为​nil​时,及时返回,并将其层层往上传递,在最顶层统一做错误处理。并且,在框架的关键组件已经提供了默认的错误处理逻辑。

3、全组件支持堆栈错误

GoFrame​框架所有组件的​error​返回对象均带有错误堆栈!

这是一件很难做到的事情,因为框架提供的组件几乎能够覆盖了大部分业务项目的所有需求,但是框架确实做到了。虽然框架在这块投入的成本比较大,但却是一次性投入、长期收益的事情。这也就意味着,如果业务项目在统一的​GoFrame​基础框架下,错误处理将会更加简便,错误堆栈丢失的风险得到了极大的降低,项目将会更加稳健、易于快速排错。

4、关键组件支持错误堆栈打印

在框架的关键组件中,提供了对错误堆栈打印的默认处理,以提高易用性,简化使用者负担。这些关键的组件是程序的出口,如​HTTP/GRPC Server​、​Command​命令行。

网页标题:创新互联GoFrame教程:GoFrame框架设计-全错误堆栈设计
网页链接:http://www.mswzjz.cn/qtweb/news27/526577.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能