一个好用的errors包
地址:
"github.com/pkg/errors"
案例
WithMessage
package main
import (
"fmt"
"os"
"github.com/pkg/errors"
)
func main() {
err := test1()
if err != nil {
fmt.Println("err:", err)
}
fmt.Println("Hello world")
}
func test1() error {
_, err := os.Open("helloworld.txt")
if err != nil {
return errors.WithMessage(err, "test1")
}
return nil
}
输出
err: test1: open helloworld.txt: no such file or directory
Hello world
用于追加信息
Wrap
package main
import (
"fmt"
"os"
"github.com/pkg/errors"
)
func main() {
err := test1()
if err != nil {
fmt.Println("err:", err)
}
fmt.Printf("err :%+v\n", err)
}
func test1() error {
_, err := os.Open("helloworld.txt")
if err != nil {
return errors.Wrap(err, "test1")
}
return nil
}
输出
err :open helloworld.txt: no such file or directory
test1
main.test1
/home/itcast/workspace/go/src/errorsTest/errors.go:23
main.main
/home/itcast/workspace/go/src/errorsTest/errors.go:11
runtime.main
/home/itcast/go/src/runtime/proc.go:198
runtime.goexit
/home/itcast/go/src/runtime/asm_amd64.s:2361
Hello world
可以获得详细信息