Go 近日接受了名为「add support for wrapping multiple errors」的提案。 该项提案对错误处理进行了优化,与 Go 1.13 为错误处理提供的新功能有关:Error Wrapping。引入 Error Wrapping 后,Go 同时为errors包添加了 3 个工具函数,分别是Unwrap、Is和As。 对于「add support for wrapping multiple errors」提案,顾名思义就是一个错误可以包裹多个错误。
Unwrap() []error提出该提案的开发者表示,重用Unwrap避免了与现有 Unwrap 方法产生歧义,从Unwrap中返回一个长度为 0 的列表意味着错误没有包裹任何内容。调用方不得修改由Unwrap返回的列表,Unwrap返回的列表不得包含任何nil错误。 他还对errors.Is和errors.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 中提供:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
函数
+关注
关注
3文章
4424浏览量
68155
原文标题:Go 1.20将支持wrapping multiple errors
文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
iMOTION2go:开启iMOTION设计平台的入门之选
iMOTION2go:开启iMOTION设计平台的入门之选 在电机控制领域,一款好用的入门工具对于工程师来说至关重要。今天就来给大家介绍一下英飞凌的iMOTION2go,它是一款为iMOTION
技嘉全新 27 寸 WOLED 电竞显示器 GO27Q24G 正式上市
240Hz 高刷新率,并支持 NVIDIA® G-SYNC® Compatible 与 AMD FreeSync™ Premium 技术,为竞技类游戏提供无撕裂、极速反应的流畅体验。GO27Q24G 采用
低成本TLI4971/TLE4971电流传感器评估套件——MS2Go与S2Go
低成本TLI4971/TLE4971电流传感器评估套件——MS2Go与S2Go 在电子工程师的日常工作中,电流传感器的评估和应用是一个重要的环节。今天我们要介绍的是英飞凌(Infineon
KIT_XMC14_2GO开发板:功能特性与硬件解析
KIT_XMC14_2GO开发板:功能特性与硬件解析 在电子开发领域,一款性能出色且功能丰富的开发板对于工程师来说至关重要。今天,我们就来详细探讨一下KIT_XMC14_2GO开发板,它配备了英飞凌
探索TLE493D-P3XX-MS2GO 3D 2Go套件:开启3D磁传感器评估之旅
探索TLE493D-P3XX-MS2GO 3D 2Go套件:开启3D磁传感器评估之旅 在电子工程师的日常工作中,评估和开发磁传感器是一项常见且重要的任务。英飞凌(Infineon
房产数据平台安家go获取地区列表数据的API接口
在房产数据平台“安家go”中,获取地区列表数据是一个常见需求,它允许开发者访问全国或特定区域的行政区划信息,如省、市、区县等。这对于构建房产搜索、数据分析或地图应用至关重要。本文将详细介绍
Go 1.20将支持wrapping multiple errors
评论