spiegel-im-spiegel/errs パッケージ v1.0.4 をリリースした
Zenn で pkg/errors の不具合(?)について教えてもらった。
これを見たときは完全に他人事だったのだが,よく考えたら拙作の spiegel-im-spiegel/errs では pkg/errors の設計コンセプトを参考にしているのでもしかして… と思って調べたら別のところで不具合を見つけてしまった orz
具体的には errs
.New()
関数で生成したインスタンスに標準の errors
.Unwrap()
をかけても 返り値が nil
にならないというもの。
ちうわけで,修正版をリリースした。
言い訳するなら,実際のエラーハンドリングで errors
.Unwrap()
を使って手動でひとつずつ階層を遡るとかしないよね,普通。
いや,マジすんません 🙇
エラーハンドリングについて,最近読んで面白いと思ったのが以下の記事。
特にクラウド環境下でロギングと絡めたハンドリングは参考になるだろう。
この記事の中で「サードパーティのロガーやエラーハンドラは極力使わない」というのは半分くらいは同意。 でも,サードパーティの汎用パッケージじゃなくても,結局は対象となるツール・サービスの設計に合わせて「自分で作ったほうが早い」ってのはあるんだよなぁ。 だから私も自前で作ってるんだけど(笑)
ブックマーク
- Go 言語用エラーハンドリング・パッケージ
- Go のエラーハンドリング : Zenn 本書きました
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。