errorx:全面的Go错误处理库
强调
errorx库提供错误实现和与错误相关的实用程序。 库功能包括(但不限于):
堆栈痕迹
错误的可组合性
旨在通过堆栈跟踪和消息来增强错误
强大的类型和特征检查
介绍
解决Go错误的传统方法非常有限。
典型的情况是在某个时刻创建了一个错误:
return errors . New ( "now this is unfortunate" )
然后与不费吹灰之力一起传递:
if err != nil {
return err
}
最后,通过将其打印到日志文件进行处理:
log . Printf ( "Error: %s" , err )
很快就发现这还远远不够。 当开发人员能够观察到的所有内容都是日志中的一行(其中之一)时,解决该问题几乎没有乐趣:
错误:EOF
错误:值的开头出现意外的'>'
错误:参数值错误
errorx库提供了一种创建工具集的方法,该工具集可以通过考虑以下因素来帮助解决此问题:
拥有所有必需的调试信息的错误,无需格外小心; 相反,可能构成特殊情况
必须存在一种区分一种错误和另一种错误的方法,因为它们可能暗示或需要对用户代码进行不同的处理