Open2
[Go] エラーライブラリにsamber/oopsを使ってみる
lo(lodash-like) やdo(DI), mo(関数型の概念)を開発するsamber氏の公開するエラーライブラリoopsを試してみる。
間違えた時に出る英語の声の「oops!」っぽい。
エラーコードの指定や、ビルダーの作成が可能
Xrayやエンドポイント情報をスマートに埋め込めていい感じ。
ただ、ちょっと複雑になるのでエラービルディング専用にpackageを切った方がスマートな気がする
func d() error {
return oops.
Code("iam_missing_permission").
In("authz").
Tags("authz").
Time(time.Now()).
With("user_id", 1234).
With("permission", "post.create").
Hint("Runbook: https://doc.acme.org/doc/abcd.md").
User("user-123", "firstname", "john", "lastname", "doe").
Errorf("permission denied")
}