以下是关于 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 或其他您喜欢的文件名。如果您需要进一步的修改或补充,请告诉我!

每日更新-免费小火箭账号
不要错过任何机会,探索最新的应用和游戏,就在我们的平台。
立即访问
最后修改:2024 年 12 月 27 日
如果觉得我的文章对你有用,请随意赞赏