日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Golang 中的 Errors 包詳解,你都了解嗎?

來源: 責(zé)編: 時間:2024-01-18 09:38:01 254觀看
導(dǎo)讀在 Golang 中,errors 包是用于處理錯誤的標(biāo)準(zhǔn)庫, errors 包提供的功能比較簡單,使用起來非常方便。接下來就具體講解一下 errors 包提供的幾個函數(shù)。errors.Newfunc New(text string) error錯誤處理是開發(fā)過程中必不可少

zce28資訊網(wǎng)——每日最新資訊28at.com

在 Golang 中,errors 包是用于處理錯誤的標(biāo)準(zhǔn)庫, errors 包提供的功能比較簡單,使用起來非常方便。接下來就具體講解一下 errors 包提供的幾個函數(shù)。zce28資訊網(wǎng)——每日最新資訊28at.com

errors.New

func New(text string) error

錯誤處理是開發(fā)過程中必不可少的,使用 errors.New 函數(shù)可以創(chuàng)建一個表示特定錯誤的對象。接受一個字符串類型的參數(shù)(用于描述錯誤信息),返回一個 error 類型的值。例如:zce28資訊網(wǎng)——每日最新資訊28at.com

package mainimport "errors"func main() {	err := errors.New("invalid input")}

error 類型是 builtin 包中定義的一個接口,定義如下:zce28資訊網(wǎng)——每日最新資訊28at.com

type error interface {	Error() string}

可以看出此接口定義了一個基本的 Error 方法,用于返回錯誤的描述信息。zce28資訊網(wǎng)——每日最新資訊28at.com

package mainimport (	"errors"	"fmt")func main() {	err := errors.New("invalid input")	errDesc := err.Error()	fmt.Println(errDesc) // 輸出 invalid input}

errors.Is

func Is(err, target error) bool

用于判斷給定的錯誤是否是目標(biāo)錯誤類型或者基于目標(biāo)錯誤類型包裝過的錯誤,會遞歸檢查錯誤鏈,直到找到目標(biāo)錯誤類型或者到達(dá)錯誤鏈的末尾。如果找到目標(biāo)錯誤類型,則返回true,否則返回false。看個例子:zce28資訊網(wǎng)——每日最新資訊28at.com

package mainimport (	"errors"	"fmt")func main() {	err := errors.New("invalid input")	err1 := errors.New("invalid input")	err2 := fmt.Errorf("err2: [%w]", err)	fmt.Println(errors.Is(err1, err)) // false	fmt.Println(errors.Is(err2, err)) // true}

因?yàn)?err 和 err1 都是使用 errors.New 函數(shù)創(chuàng)建的,所以使用 Is 判斷會返回 false。err2 是基于 err 包裝出來的,所以使用 Is 判斷會返回 true。zce28資訊網(wǎng)——每日最新資訊28at.com

errors.AS

func As(err error, target any) bool

用于將錯誤轉(zhuǎn)換為特定類型的錯誤,As 函數(shù)會檢查 err 是否是 target 指向的類型的實(shí)例,如果是,將該實(shí)例賦值給 target 并返回 true。否則返回 false。看個例子:zce28資訊網(wǎng)——每日最新資訊28at.com

package mainimport (	"errors"	"fmt")type MyError struct {	Message string}func (e *MyError) Error() string {	return e.Message}func main() {	err := &MyError{		Message: "This is a custom error",	}	var target *MyError	if errors.As(err, &target) {		fmt.Println("Custom error found:", target.Message)	} else {		fmt.Println("Custom error not found")	}}

使用 errors.As 來檢查 err 是否是 MyError 類型的實(shí)例,并將實(shí)例賦值給 target。運(yùn)行一下示例看下效果zce28資訊網(wǎng)——每日最新資訊28at.com

$ go run main.goCustom error found: This is a custom error

這個功能通常用于處理不同類型的錯誤,根據(jù)錯誤的類型采取對應(yīng)的處理方式。zce28資訊網(wǎng)——每日最新資訊28at.com

errors.Unwrap

func Unwrap(err error) error

用于將一個錯誤對象展開,得到下一層錯誤對象,如果錯誤對象沒有下一層錯誤對象,則返回 nil。看個例子:zce28資訊網(wǎng)——每日最新資訊28at.com

package mainimport (	"errors"	"fmt")func main() {  originalErr := errors.New("original error")	err := fmt.Errorf("error: %w", originalErr)	unwrappedErr := errors.Unwrap(err)	fmt.Println(unwrappedErr) // 輸出: original error}

使用 fmt.Errorf 函數(shù)將 originalErr 做了一層包裝后得到 err,然后通過使用 Unwrap 將 err 解包并得包裝前的錯誤對象 originalErr。需要注意的是 Unwrap 只能展開被 fmt.Errorf 包裝的錯誤對象。如果想要展開其他類型的錯誤對象,可以使用類型斷言操作符 `.` 進(jìn)行類型斷言。zce28資訊網(wǎng)——每日最新資訊28at.com

小結(jié)

errors 包提供了一些簡單易用的函數(shù)來處理和獲取錯誤信息,借助 errors 包可以實(shí)現(xiàn)非常強(qiáng)大的錯誤處理功能。zce28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-64095-0.htmlGolang 中的 Errors 包詳解,你都了解嗎?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 微信支付進(jìn)一步擴(kuò)大數(shù)字人民幣使用范圍,新增數(shù)百萬商戶

下一篇: 你知道.NET中的數(shù)組在內(nèi)存中如何布局的嗎?

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久精品卡一| 一区二区欧美日韩视频| 国产精品永久免费在线| 国产精品一区一区三区| 国产亚洲欧美aaaa| 亚洲二区在线视频| 99精品视频一区| 亚洲综合色自拍一区| 久久精品国产久精国产一老狼| 久久夜色精品一区| 欧美日本韩国一区| 国产日韩一区| 亚洲私人影院| 亚洲人成在线观看一区二区| 中文亚洲视频在线| 欧美中文在线免费| 欧美精品亚洲一区二区在线播放| 欧美三日本三级三级在线播放| 国产精品一二三四| 亚洲国产精品一区二区三区| 亚洲天堂成人| 老司机精品视频一区二区三区| 欧美视频国产精品| 韩国女主播一区| 一个色综合av| 久久人人看视频| 国产精品久久九九| 亚洲国产日韩综合一区| 午夜视频久久久久久| 欧美屁股在线| 激情成人在线视频| 亚洲一区二区视频在线| 免费高清在线一区| 国产欧美日韩不卡| 99国产精品久久久久久久久久 | 国产精品日韩精品欧美在线 | 欧美一区视频| 欧美日韩免费高清| 136国产福利精品导航| 亚洲欧美偷拍卡通变态| 欧美刺激午夜性久久久久久久| 国产日韩久久| 一区二区三区欧美成人| 欧美bbbxxxxx| 国语精品中文字幕| 亚洲一区在线观看视频| 欧美精品在线免费观看| 尤物九九久久国产精品的特点| 亚洲欧美国产77777| 欧美区在线观看| 伊人精品成人久久综合软件| 性色av一区二区三区在线观看| 欧美日韩国产高清视频| 在线免费观看视频一区| 欧美专区18| 国产精品美女视频网站| 亚洲久久一区二区| 欧美91大片| 韩国成人福利片在线播放| 亚洲欧美久久| 欧美午夜精品伦理| 日韩亚洲精品视频| 欧美电影资源| 亚洲电影在线看| 久久久久久亚洲综合影院红桃| 国产美女搞久久| 亚洲欧美一区二区精品久久久| 欧美日韩视频不卡| 亚洲国产天堂久久综合网| 久久一日本道色综合久久| 日韩视频免费在线| 激情成人综合| 欧美永久精品| 国产精品网红福利| 亚洲视频在线二区| 欧美日韩国产精品专区| 最新成人在线| 免费久久精品视频| 亚洲成色777777在线观看影院| 久久精品国产亚洲aⅴ| 国产日韩一区| 午夜性色一区二区三区免费视频| 国产精品激情电影| 亚洲午夜精品在线| 欧美午夜视频一区二区| 中文精品视频| 国产精品第13页| 亚洲永久免费观看| 国产美女精品| 久久精品主播| 一区二区三区无毛| 免费看黄裸体一级大秀欧美| 在线精品国产成人综合| 久久亚洲春色中文字幕久久久| 韩国精品在线观看| 另类图片国产| 亚洲国产一区二区三区a毛片| 蜜桃久久av一区| 亚洲黄色影片| 欧美日韩成人综合在线一区二区| 9人人澡人人爽人人精品| 欧美日韩一区二区高清| 亚洲一区二区精品| 国产欧美日韩激情| 久久在线免费| 亚洲精品国产品国语在线app| 欧美日本在线一区| 亚洲私人影院在线观看| 国产精品亚洲成人| 久久精品麻豆| 最新中文字幕一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美日韩在线播放三区| 亚洲视频网站在线观看| 国产伦一区二区三区色一情| 久久国产精品黑丝| 亚洲成人在线观看视频| 欧美巨乳在线| 亚洲免费视频网站| 国产真实乱偷精品视频免| 久久久久国色av免费观看性色| 亚洲激精日韩激精欧美精品| 欧美日韩视频不卡| 久久精品理论片| 91久久夜色精品国产九色| 欧美视频一区在线观看| 欧美一区亚洲| 最新中文字幕亚洲| 国产精品久久一区主播| 久久久久国产成人精品亚洲午夜| 亚洲日本视频| 国产精品免费一区二区三区在线观看| 久久国产日韩| 亚洲精品在线观| 欧美国产精品人人做人人爱| 亚洲午夜av| **欧美日韩vr在线| 国产精品久久国产精品99gif| 久久九九精品99国产精品| 日韩视频免费看| 国产一区二区三区网站| 欧美人与性动交cc0o| 欧美在线视频二区| 亚洲毛片播放| 国产一区二区三区黄| 欧美日韩成人免费| 久久在线免费观看| 亚洲男人的天堂在线aⅴ视频| 在线观看视频一区| 国产精品久久激情| 毛片av中文字幕一区二区| 亚洲一区3d动漫同人无遮挡| 激情欧美一区二区三区在线观看| 欧美日韩视频免费播放| 久久综合电影| 午夜在线观看免费一区| 亚洲老司机av| 精品51国产黑色丝袜高跟鞋| 国产精品美女久久久久aⅴ国产馆| 免费成人美女女| 亚洲欧美日韩在线播放| 亚洲区中文字幕| 国产伊人精品| 国产精品久久久久77777| 免费亚洲电影| 欧美在线国产| 亚洲砖区区免费| 亚洲精品国产系列| 国内一区二区三区| 国产精品色在线| 欧美日本亚洲韩国国产| 久久婷婷亚洲| 午夜在线视频一区二区区别| 夜夜嗨av一区二区三区四区| 在线观看欧美日韩| 国产日韩欧美不卡在线| 欧美日韩中文精品| 欧美成人免费在线视频| 久久久91精品国产一区二区精品| 亚洲欧美国产视频| 一本色道88久久加勒比精品| 亚洲国产黄色片| 在线成人国产| 国产一区自拍视频| 国产日韩欧美在线看| 国产精品久久久一区麻豆最新章节 | 99精品久久免费看蜜臀剧情介绍| 永久免费精品影视网站| 国产一区二区三区在线观看网站| 国产精品毛片在线看| 欧美日韩亚洲一区二区三区在线观看| 欧美成年人网| 久久综合导航| 久久久久国内| 久久一区二区三区四区五区| 久久久99爱| 久久久久国色av免费看影院| 久久se精品一区精品二区| 亚洲欧美日韩国产| 亚洲欧美色婷婷| 欧美在线电影| 久久国产精品99国产| 久久aⅴ国产紧身牛仔裤| 欧美伊人久久大香线蕉综合69|