Go 近日接受了名為「add support for wrapping multiple errors」的提案。 該項(xiàng)提案對錯(cuò)誤處理進(jìn)行了優(yōu)化,與 Go 1.13 為錯(cuò)誤處理提供的新功能有關(guān):Error Wrapping。引入 Error Wrapping 后,Go 同時(shí)為errors包添加了 3 個(gè)工具函數(shù),分別是Unwrap、Is和As。 對于「add support for wrapping multiple errors」提案,顧名思義就是一個(gè)錯(cuò)誤可以包裹多個(gè)錯(cuò)誤。
Unwrap() []error提出該提案的開發(fā)者表示,重用Unwrap避免了與現(xiàn)有 Unwrap 方法產(chǎn)生歧義,從Unwrap中返回一個(gè)長度為 0 的列表意味著錯(cuò)誤沒有包裹任何內(nèi)容。調(diào)用方不得修改由Unwrap返回的列表,Unwrap返回的列表不得包含任何nil錯(cuò)誤。 他還對errors.Is和errors.As函數(shù)進(jìn)行了更新,實(shí)現(xiàn)對 multiple errors 進(jìn)行Unwrap操作。 errors.Join函數(shù)提供了 multierr 的簡單實(shí)現(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 中提供:

-
函數(shù)
+關(guān)注
關(guān)注
3文章
4379瀏覽量
64833
原文標(biāo)題:Go 1.20將支持wrapping multiple errors
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
一個(gè)帶有CYPD3177的自定義COOLDIM_PRG_BOARD,當(dāng)它翻轉(zhuǎn)時(shí),則沒有POWER_DRILL2GO,為什么?
通過XRES引腳POWER_DRILL2GO保持ic復(fù)位是否會(huì)降低ic的最終輸出?
如果 PD 合約不匹配,BCR 是否仍會(huì)打開 SINK_FET_EN POWER_DRILL2GO路徑?
如何將CCG3上的“啟用固件更新”部分設(shè)置為“是”?
從 Java 到 Go:面向?qū)ο蟮木奕伺c云原生的輕騎兵
43KB-10系列固定衰減器Anritsu
DLPC300使用Multiple Bit Depth and Multiple Color Pattern Sequences功能的疑問求解
AMAZINGIC晶焱科技技術(shù)應(yīng)用:典范轉(zhuǎn)移 EV全生態(tài)系商機(jī) - The CAN SIC Transceiver Is Ready To Go.

典范轉(zhuǎn)移 EV全生態(tài)系商機(jī) - The CAN SIC Transceiver Is Ready To Go.

影目科技發(fā)布全球首款同傳翻譯眼鏡INMO GO2
在學(xué)習(xí)go語言的過程踩過的坑
go語言如何解決并發(fā)問題

微軟Copilot Studio將支持企業(yè)創(chuàng)建自主AI代理
三十分鐘入門基礎(chǔ)Go Java小子版

評論