以下是关于 Go 语言 errors
包的知识整理,您可以将其保存为文件。
Go 语言 errors
包知识整理
1. 基本功能
创建错误
使用
errors.New
创建一个简单的错误:import "errors" err := errors.New("这是一个错误")
包装错误
从 Go 1.13 开始,使用
fmt.Errorf
的%w
格式化标志来包装错误:import ( "errors" "fmt" ) originalErr := errors.New("原始错误") wrappedErr := fmt.Errorf("包装错误: %w", originalErr)
2. 检查错误
使用 errors.Is
检查一个错误是否与另一个错误相同,或在错误链中包含该错误:
if errors.Is(err, originalErr) { // 处理匹配的错误 }
使用 errors.As
将错误转换为特定类型:
var targetErr *MyErrorType if errors.As(err, &targetErr) { // 处理特定类型的错误 }
3. 错误处理示例
package main
import (
"errors"
"fmt"
)
func doSomething() error {
return errors.New("发生了一个错误")
}
func main() {
err := doSomething()
if err != nil {
fmt.Println("错误:", err)
}
}
4. 错误链
使用
fmt.Errorf
和%w
创建错误链:func someFunction() error { return errors.New("原始错误") } func anotherFunction() error { err := someFunction() if err != nil { return fmt.Errorf("在 anotherFunction 中发生错误: %w", err) } return nil }
5. 总结
errors
包是 Go 语言中处理错误的基础工具。- 提供了创建、包装、检查和处理错误的功能。
- 通过错误链,可以更好地追踪和理解错误的来源。
6. 适用场景
- 在函数中返回错误,告知调用者发生了什么问题。
- 在中间件中记录和处理错误。
- 在应用程序中实现自定义错误类型以提供更多上下文信息。
您可以将以上内容复制到文本文件中,保存为 errors_package_notes.txt
或其他您喜欢的文件名。如果您需要进一步的修改或补充,请告诉我!