errors

fmt.Errorf()とerrorsのセットとgolang.org/x/xerrorsは異なる

前回の記事でfmt.Errorf()がpkg/errors.Wrap()を殺すという話を書いた。これはもう少し雑に言えば、エラー時に位置情報を記録したいということだった。 そしてこれについて以下の様な発言をしつつ調べていたところ、かつてのpolyfilだと思っていたgolang.org…

fmt.Errorf(" : %w", ...)は、pkg/errors.Wrap()を殺す

go1.13以降、github.com/pkg/errorsから、標準ライブラリのerrorsとfmtを使う形への乗り換えが行われていたり行われていなかったりする1。 乗り換えの方法についてはerrors.Is()やerrors.As()の使い分けに終止している事が多い気がする。それ以外の変更点で…

goのerrors.As()でpanicしちゃう話

ドキュメントに書いてあることだけど、渡し方をミスるとerrors.As()はpanicしてしまう。 As panics if target is not a non-nil pointer to either a type that implements error, or to any interface type. errors.As()の使い方 その前に errors.As()の使…