errors

本文最后更新于:2023年12月5日 晚上

New

创建错误。

Join

包装多个错误。

As

判断错误类型。

package main

import (
 "errors"
 "fmt"
 "io/fs"
 "os"
)

func main() {
 if _, err := os.Open("non-existing"); err != nil {
  var pathError *fs.PathError
  if errors.As(err, &pathError) {
   fmt.Println("Failed at path:", pathError.Path)
  } else {
   fmt.Println(err)
  }
 }

}

Is

不仅判断错误类型,还要判断错误值。

import (
 "errors"
 "fmt"
 "io/fs"
 "os"
)

func main() {
 if _, err := os.Open("non-existing"); err != nil {
  if errors.Is(err, fs.ErrNotExist) {
   fmt.Println("file does not exist")
  } else {
   fmt.Println(err)
  }
 }

}

Unwrap


errors
http://blog.lujinkai.cn/Golang/标准库/errors/
作者
像方便面一样的男子
发布于
2023年12月4日
更新于
2023年12月5日
许可协议