您现在的位置是:首页 > 文章详情

Go 1.20 将支持 wrapping multiple errors

日期:2022-12-04点击:305

Go 近日接受了名为「add support for wrapping multiple errors」的提案。

该项提案对错误处理进行了优化,与 Go 1.13 为错误处理提供的新功能有关:Error Wrapping。引入 Error Wrapping 后,Go 同时为errors包添加了 3 个工具函数,分别是UnwrapIsAs

对于「add support for wrapping multiple errors」提案,顾名思义就是一个错误可以包裹多个错误。

 Unwrap() []error

提出该提案的开发者表示,重用Unwrap避免了与现有 Unwrap 方法产生歧义,从Unwrap中返回一个长度为 0 的列表意味着错误没有包裹任何内容。调用方不得修改由Unwrap返回的列表,Unwrap返回的列表不得包含任何nil错误。

他还对errors.Iserrors.As函数进行了更新,实现对 multiple errors 进行Unwrap操作。

errors.Join函数提供了 multierr 的简单实现:

 // Join returns an error that wraps the given errors. // Any nil error values are discarded. // The error formats as the text of the given errors, separated by newlines. // Join returns nil if errs contains no non-nil values. func Join(errs ...error) error

目前该提案已被接受,作者表示将在 Go 1.20 中提供:

详情查看 https://github.com/golang/go/issues/53435

原文链接:https://www.oschina.net/news/220421/go-1-20-support-for-wrapping-multiple-errors
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章