成人免费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-07-31 07:48:43

Java內存虛擬機

2023-09-21 08:05:49

Mybatis插件開發

2021-07-16 22:43:10

Go并發Golang

2021-08-05 06:54:05

Go切片數據

2022-05-17 08:02:55

GoTryLock模式

2021-04-01 10:51:55

MySQL鎖機制數據庫

2022-06-09 08:41:17

Go網絡庫Gnet

2021-06-24 06:35:00

Go語言進程

2021-03-24 06:06:13

Go并發編程Singlefligh

2022-02-23 09:36:11

GoRuby編程語言

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語言類型

2023-12-08 08:26:05

數據存儲持久性

2021-11-15 07:47:40

字符串位置存儲

2019-07-15 07:58:10

前端開發技術

2021-04-06 10:19:36

Go語言基礎技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人精品在线 | 午夜精品久久久久久 | 久久精品com | av成人在线观看 | wwwxx在线观看 | 视频在线亚洲 | 精品一区在线 | 国产一区二区三区四区五区加勒比 | 91中文视频| 男女污污动态图 | 91精品国产自产在线老师啪 | 西西裸体做爰视频 | av中文字幕在线 | 午夜视频一区 | 草逼网站 | 国产免费观看视频 | 午夜天堂精品久久久久 | 国产精品99久久久久久动医院 | 久久精品中文字幕 | 成年人黄色免费视频 | 亚洲成人av在线播放 | 国产成人av电影 | 精品九九在线 | 日韩精品免费在线观看 | 一区二区三区视频 | 中文字幕一级毛片 | 精品美女久久久 | 美女视频一区二区三区 | 中文天堂在线观看 | 中文字幕在线观看一区二区 | 国产精品视频一区二区三 | 综合久久av| 99一级毛片 | 久久久91精品国产一区二区三区 | 日韩国产中文字幕 | 国产成人精品免高潮在线观看 | 欧美精品一区在线发布 | 成年精品| 午夜精品久久久久久久99黑人 | 成人a在线 | 婷婷丁香在线视频 |