成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇聊聊Go錯誤封裝機制

開發 前端
使用 %w 時,它會在格式化字符串中占據一個位置,并將其后的錯誤作為參數傳遞給 fmt.Errorf 或 fmt.Sprintf 函數。這將創建一個新的錯誤,包含了原始錯誤信息,并形成一個錯誤鏈。

%w 是用于錯誤包裝(Error Wrapping)的格式化動詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數中的一個特殊格式化動詞,用于將一個錯誤(或其他可打印的值)包裝在一個新的錯誤中。

使用 %w 時,它會在格式化字符串中占據一個位置,并將其后的錯誤作為參數傳遞給 fmt.Errorf 或 fmt.Sprintf 函數。這將創建一個新的錯誤,包含了原始錯誤信息,并形成一個錯誤鏈。

下面是一個示例,展示了如何使用 %w 來進行錯誤包裝:

package main

import (
	"errors"
	"fmt"
)

func doSomething() error {
	return errors.New("something went wrong")
}

func main() {
	err := doSomething()

	// Wrap the original error with additional context
	wrappedErr := fmt.Errorf("encountered an issue: %w", err)

	fmt.Println(wrappedErr) // Output: encountered an issue: something went wrong
	if err, ok := wrappedErr.(interface{ Unwrap() error }); ok {
		// wrappedErr是error類型,只支持Error()方法,所以沒辦法直接調用Unwrap()。但是wrappedErr.(interface{ Unwrap() error })取出內部的數據就可以調用Unwrap()了
		fmt.Println("internal error:", err.Unwrap())
	}
	fmt.Println(errors.Is(wrappedErr, err))                         // Output: true
	fmt.Println(errors.Is(err, fmt.Errorf("something went wrong"))) // Output: false
}

另外,還有一種interface{ Unwrap() []error },其實是多次用了%w的結果。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-04-30 09:04:11

Go 語言結構體type

2023-09-21 08:05:49

Mybatis插件開發

2023-07-31 07:48:43

Java內存虛擬機

2021-08-05 06:54:05

Go切片數據

2021-07-16 22:43:10

Go并發Golang

2021-04-01 10:51:55

MySQL鎖機制數據庫

2022-05-17 08:02:55

GoTryLock模式

2021-06-24 06:35:00

Go語言進程

2021-03-24 06:06:13

Go并發編程Singlefligh

2022-02-23 09:36:11

GoRuby編程語言

2022-06-09 08:41:17

Go網絡庫Gnet

2024-02-22 17:15:22

JS垃圾回收機制

2022-06-02 07:11:13

JVMJava

2021-04-29 09:02:44

語言Go 處理

2023-12-05 07:14:27

AIGo

2021-11-15 10:29:39

Go語言類型

2021-11-15 07:47:40

字符串位置存儲

2023-12-08 08:26:05

數據存儲持久性

2019-07-15 07:58:10

前端開發技術

2021-04-09 10:38:59

Go 語言數組與切片
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷久久综合 | 亚洲精品久久久久久久不卡四虎 | 在线免费看毛片 | 日本久久视频 | 日韩精品一区二区三区老鸭窝 | 久久综合伊人 | 天堂综合网 | 久久com| 欧美不卡视频一区发布 | 成人一级片在线观看 | 女女百合av大片一区二区三区九县 | 久草中文在线观看 | 欧美freesex黑人又粗又大 | 久久成人免费视频 | 一区二区久久 | 久久久在线视频 | 亚洲视频精品在线 | 一级毛片色一级 | 北条麻妃一区二区三区在线视频 | 91色站 | 午夜二区 | 日韩国产在线 | 精品不卡 | 韩日一区二区 | 国产日韩欧美在线观看 | 欧美亚洲一级 | 午夜精品一区二区三区在线观看 | 一级大片免费 | 国产在线1| 一级高清 | 国产999精品久久久久久 | 精品日韩一区二区三区 | 日本精品一区二区三区视频 | 日本久久网 | 午夜网站视频 | 亚洲精品片| 雨宫琴音一区二区在线 | 欧美一区二区大片 | 欧美精品在线看 | 亚洲逼院 | 欧美一级二级视频 |