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文章
4371瀏覽量
64241
原文標題:Go 1.20將支持wrapping multiple errors
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
一個帶有CYPD3177的自定義COOLDIM_PRG_BOARD,當它翻轉時,則沒有POWER_DRILL2GO,為什么?
我有一個帶有 CYPD3177 的自定義COOLDIM_PRG_BOARD 。 當插入時,它僅從POWER_DRILL2GO電源接收POWER_DRILL2GO信號,并且 USB 電纜處于一個方向
發表于 05-26 07:24
通過XRES引腳POWER_DRILL2GO保持ic復位是否會降低ic的最終輸出?
我正在使用 CYPAS111A1 PAG1S 設計 65W USB C 型充電器。 我想通過控制器切斷 USB 輸出。 通過 XRES 引腳POWER_DRILL2GO保持 ic 復位是否會降低 ic 的最終輸出? 請予以支持。
發表于 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
發表于 05-23 08:01
如何將CCG3上的“啟用固件更新”部分設置為“是”?
/Common-Errors-while-Programming-CCG3PA-usi...
如果我遇到這種情況,我應該將“啟用固件更新”部分設置為“是”。
但是 CCG3 配置表沒有“啟用固件更新”部分。
我應該如何將 CCG
發表于 05-12 07:52
從 Java 到 Go:面向對象的巨人與云原生的輕騎兵
Go 語言在 2009 年被 Google 推出,在創建之初便明確提出了“少即是多(Less is more)”的設計原則,強調“以工程效率為核心,用極簡規則解決復雜問題”。它與 Java 語言生態
43KB-10系列固定衰減器Anritsu
GHz或40 GHz的頻率范圍。
低駐波比(SWR):典型值在1.15:1到1.50:1之間。
高精度衰減:衰減精度在±0.5 dB到±0.9 dB之間。
兼容性:支持SMA和3.5毫米連接器
發表于 03-11 09:40
DLPC300使用Multiple Bit Depth and Multiple Color Pattern Sequences功能的疑問求解
沒有TMS320DM365。我想實現
Multiple Bit Depth and Multiple Color Pattern Sequences的功能。我看了TI官方提供的操作方法是使用 DLP
發表于 02-20 07:17
AMAZINGIC晶焱科技技術應用:典范轉移 EV全生態系商機 - The CAN SIC Transceiver Is Ready To Go.
AMAZINGIC晶焱科技技術應用:典范轉移 EV全生態系商機 - The CAN SIC Transceiver Is Ready To Go.

典范轉移 EV全生態系商機 - The CAN SIC Transceiver Is Ready To Go.
典范轉移 EV全生態系商機 - The CAN SIC Transceiver Is Ready To Go.

影目科技發布全球首款同傳翻譯眼鏡INMO GO2
近日,搭載紫光展銳W517芯片平臺的INMO GO2由影目科技正式推出。作為全球首款專為商務場景設計的智能翻譯眼鏡,INMO GO2 以“快、準、穩”三大核心優勢,突破傳統翻譯產品局限,為全球商務人士帶來高效、自然、穩定的跨語言交流體驗。
在學習go語言的過程踩過的坑
作為一個5年的phper,這兩年公司和個人都在順應技術趨勢,新項目慢慢從php轉向了go語言,從2021年到現在,筆者手上也先后開發了兩個go項目。在學習go語言的過程中也學習并總結了一些相關的東西,這篇文章就分享下自己踩過的一
go語言如何解決并發問題
作為一個后端開發,日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認,PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負擔,字符串和整型壓根就不用區分,開發速度真的是比

三十分鐘入門基礎Go Java小子版
前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態、強類型、編譯型語言。Go 語言

出現Multiple decode errors occured:故障如何解決?
出現Multiple decode errors occured:故障,沒有相應的文件說明消除這個故障
發表于 07-19 07:02
ESP32C3編譯出現multiple definition of `g_log_level\'的原因?
如題,一個原是ESP32的物聯網例程,在改為ESP32C3后,編譯出現multiple definition of `g_log_level\'不良。
[2/3] Linking CXX
發表于 06-19 08:28
評論