Go 近日接受了名為「add support for wrapping multiple errors」的提案。 該項提案對錯誤處理進行了優(yōu)化,與 Go 1.13 為錯誤處理提供的新功能有關:Error Wrapping。引入 Error Wrapping 后,Go 同時為errors包添加了 3 個工具函數,分別是Unwrap、Is和As。 對于「add support for wrapping multiple errors」提案,顧名思義就是一個錯誤可以包裹多個錯誤。
Unwrap() []error提出該提案的開發(fā)者表示,重用Unwrap避免了與現(xiàn)有 Unwrap 方法產生歧義,從Unwrap中返回一個長度為 0 的列表意味著錯誤沒有包裹任何內容。調用方不得修改由Unwrap返回的列表,Unwrap返回的列表不得包含任何nil錯誤。 他還對errors.Is和errors.As函數進行了更新,實現(xiàn)對 multiple errors 進行Unwrap操作。 errors.Join函數提供了 multierr 的簡單實現(xiàn):
// 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 中提供:
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4421瀏覽量
67815
原文標題:Go 1.20將支持wrapping multiple errors
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
熱點推薦
Go 語言高并發(fā)服務設計與性能調優(yōu)實戰(zhàn):從萬級到百萬級并發(fā)的演進之路
在2026年的今天,Go 語言已成為高并發(fā)后端服務的首選語言。根據 Stack Overflow 最新開發(fā)者調查:
指標
數據
Go 語言采用率
后端服務中占比 42%
平均并發(fā)能力
單節(jié)點
發(fā)表于 02-18 19:19
技嘉全新 27 寸 WOLED 電競顯示器 GO27Q24G 正式上市
240Hz 高刷新率,并支持 NVIDIA? G-SYNC? Compatible 與 AMD FreeSync? Premium 技術,為競技類游戲提供無撕裂、極速反應的流暢體驗。GO27Q24G 采用
XENSIV? BGT60LTR11AIP Radar Shield2Go:超小型低功耗雷達傳感器的應用與配置
XENSIV? BGT60LTR11AIP Radar Shield2Go:超小型低功耗雷達傳感器的應用與配置 在電子設計領域,雷達傳感器的應用越來越廣泛,尤其是在智能家居、安防等領域。今天,我們要
XENSIV? DPS310/368 Pressure Sensor 2Go Kit :高精度壓力傳感解決方案
XENSIV? DPS310/368 Pressure Sensor 2Go Kit :高精度壓力傳感解決方案 一、引言 在電子設備設計中,壓力傳感器是一個至關重要的元件,廣泛應用于氣象監(jiān)測
低成本TLI4971/TLE4971電流傳感器評估套件——MS2Go與S2Go
低成本TLI4971/TLE4971電流傳感器評估套件——MS2Go與S2Go 在電子工程師的日常工作中,電流傳感器的評估和應用是一個重要的環(huán)節(jié)。今天我們要介紹的是英飛凌(Infineon
XENSIV? PAS CO2 Sensor2Go評估套件快速上手指南
XENSIV? PAS CO2 Sensor2Go評估套件快速上手指南 在電子工程領域,對于二氧化碳($CO_2$)傳感器的評估和應用是一個重要的研究方向。英飛凌的XENSIV? PAS CO2
XENSIV? TLE4973電流傳感器2GO套件:低成本評估解決方案
XENSIV? TLE4973電流傳感器2GO套件:低成本評估解決方案 在電子工程師的日常工作中,快速且低成本地評估新的傳感器是一項重要需求。英飛凌的XENSIV? TLE4973電流傳感器2GO
KIT_XMC14_2GO開發(fā)板:功能特性與硬件解析
KIT_XMC14_2GO開發(fā)板:功能特性與硬件解析 在電子開發(fā)領域,一款性能出色且功能豐富的開發(fā)板對于工程師來說至關重要。今天,我們就來詳細探討一下KIT_XMC14_2GO開發(fā)板,它配備了英飛凌
探索TLE493D-P3XX-MS2GO 3D 2Go套件:開啟3D磁傳感器評估之旅
探索TLE493D-P3XX-MS2GO 3D 2Go套件:開啟3D磁傳感器評估之旅 在電子工程師的日常工作中,評估和開發(fā)磁傳感器是一項常見且重要的任務。英飛凌(Infineon
房產數據平臺安家go獲取地區(qū)列表數據的API接口
? 在房產數據平臺“安家go”中,獲取地區(qū)列表數據是一個常見需求,它允許開發(fā)者訪問全國或特定區(qū)域的行政區(qū)劃信息,如省、市、區(qū)縣等。這對于構建房產搜索、數據分析或地圖應用至關重要。本文將詳細介紹
一個帶有CYPD3177的自定義COOLDIM_PRG_BOARD,當它翻轉時,則沒有POWER_DRILL2GO,為什么?
我有一個帶有 CYPD3177 的自定義COOLDIM_PRG_BOARD 。 當插入時,它僅從POWER_DRILL2GO電源接收POWER_DRILL2GO信號,并且 USB 電纜處于一個方向
發(fā)表于 05-26 07:24
通過XRES引腳POWER_DRILL2GO保持ic復位是否會降低ic的最終輸出?
我正在使用 CYPAS111A1 PAG1S 設計 65W USB C 型充電器。 我想通過控制器切斷 USB 輸出。 通過 XRES 引腳POWER_DRILL2GO保持 ic 復位是否會降低 ic 的最終輸出? 請予以支持。
發(fā)表于 05-26 06:44
如果 PD 合約不匹配,BCR 是否仍會打開 SINK_FET_EN POWER_DRILL2GO路徑?
BCR 具有 SINK_FET_EN 和 SAFE_PWR_EN 引腳來控制POWER_DRILL2GO消耗路徑。
如果 PD 合約不匹配,BCR 是否仍會打開 SINK_FET_EN POWER_DRILL2GO路徑?或者只打開 SAFE_PWR_EN POWER_DR
發(fā)表于 05-23 08:01
如何將CCG3上的“啟用固件更新”部分設置為“是”?
/Common-Errors-while-Programming-CCG3PA-usi...
如果我遇到這種情況,我應該將“啟用固件更新”部分設置為“是”。
但是 CCG3 配置表沒有“啟用固件更新”部分。
我應該如何將 CCG
發(fā)表于 05-12 07:52
從 Java 到 Go:面向對象的巨人與云原生的輕騎兵
Go 語言在 2009 年被 Google 推出,在創(chuàng)建之初便明確提出了“少即是多(Less is more)”的設計原則,強調“以工程效率為核心,用極簡規(guī)則解決復雜問題”。它與 Java 語言生態(tài)
Go 1.20將支持wrapping multiple errors
評論