Go 1.13のerrorsへの移行手順
https://github.com/pkg/errors を利用している前提で紹介します。
基本
errors.Wrap(err, "") を fmt.Errorf(": %w", err)に変更
errors.Wrap(err, "message")
fmt.Errorf("message: %w", err)
errors.Cause を errors.Unwrap に変更
err = errors.Cause(err)
err = errors.Unwrap(err)
エラーの値の比較をerrors.Isに変更
err = errors.Cause(err)
if err == ErrNotFound {
}
// Unwrapは不要
if errors.Is(err, ErrNotFound) {
}
type assertion を Asに変更
if myErr, ok := err.(*MyError); ok {
}
var myErr *MyError
if ok := errors.As(err, &myErr); ok {
}
その他
エラー出力でスタックトレースを表示
Go 1.13のerrors パッケージではスタックトレースの表示には対応していません。
スタックトレースの表示をしたい場合にはxerrorsへの移行手順 をご確認ください。