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文章
4307瀏覽量
62433
原文標題:Go 1.20將支持wrapping multiple errors
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
在學習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
求助,關于PSoC4000S POWER_DRILL2GO下降壓擺率的疑問求解
( POWER_DRILL2GO下降緩慢),所以我正在考慮在XRES上添加一個復位IC來解決這個問題。
例如,如果復位 IC 將 XRES 置為 1.7V 或更低,即使POWER_DRILL2GO -down 的壓擺率不符合數據
發表于 05-21 08:14
請問STVP+COSMIC環境下的go to definition怎么用?
STVP+COSMIC環境下的go to definition怎么用?
我現在go to definition在一個宏定義的時候有效果,但是函數什么的沒用,是怎么回事呢,是不是工程里面沒有設置好,求大家幫幫忙?
發表于 05-11 06:11
atollic truestudio調試時Live Expressions顯示功能不可用怎么解決?
atollic truestudio調試時Live Expressions顯示功能不可用,表達式欄Multiple errors reported.Failed to execute MI command:-var-create - ,請問怎么解決?
發表于 04-02 07:53
在CYUSB3304-68LTXC上電時將RESETN輸入切換為L/H,可以聯動控制POWER_DRILL2GO端子嗎?
我有一個關于 HX3 的問題。
如果在 CYUSB3304-68LTXC 上電時將 RESETN 輸入切換為 L/H,是否可以聯動控制POWER_DRILL2GO端子?
例如,當RESETN輸入為L時, POWER_DRILL2GO
發表于 03-06 07:45
PMG1 PoR復位時POWER_DRILL2GO什么時候進入?
我有兩個關于 PMG1 PoR 的問題。
1.復位時POWER_DRILL2GO什么時候進入?
也許您想在電壓低于預設值時強制 EZ-PD? PMG1-S1 MCU 設備復位
發表于 03-06 06:03
Arduino IDE中是否有與Xmc2Go兼容的LoRaWAN庫?
我想問一下 Arduino IDE 中是否有與 Xmc2Go 兼容的 LoRaWAN 庫?
我正在嘗試使用連接到 Xmc2Go 的 RFM95W Lora 模塊通過 LoRaWAN 將數據傳輸
發表于 02-27 06:05
瑞薩Flash示例程序01版V1.20(SC版)發布說明
電子發燒友網站提供《瑞薩Flash示例程序01版V1.20(SC版)發布說明.pdf》資料免費下載
發表于 02-19 10:40
?0次下載
為什么無法讀取BGT60LTR11AIP Radar Shield2Go板的SPI數據?
我有一塊BGT60LTR11AIP Radar Shield2Go板,試圖通過PSOC4 MCU的模擬SPI讀取數據。 我已經將評估板設置為SPI模式,為使用官方庫代碼,MCU采用了模擬SPI方式讀取,但是一直無法讀到數據。 附件是項目,有人能幫我嗎?
發表于 01-23 06:20
如何在Go中給GORM模型添加枚舉類型
GORM是一個流行的Go ORM,它允許我們定義結構體來表示數據庫表,并提供一個接口來執行CRUD操作。枚舉在編程中是一個有用的特性,它允許我們定義一個變量可以取的固定值集。在這篇文章中,我們將探索如何向GORM模型添加枚舉。
評論