-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
WHAT
gRPCのerrorをいい感じにWrapする方法を考える。
選択肢的には以下のどちらか。
どっちもどっちみたいな気持ち
fmt.Errorf(": %w" err) でwrapしたものを剥いて、status.Status を取り出す
以下のようなやつ
func UnwrapGRPCError(err error) (*status.Status, bool) {
cerr := err
for {
sts, ok := status.FromError(cerr)
if ok {
return sts, true
}
nerr := errors.Unwrap(cerr)
if nerr == nil {
return nil, false
}
cerr = nerr
}
}
status.Status を内包する Custom Error を作る
WHY
gRPC の error は Wrap すると、gRPC package の関数では取り出せない
Metadata
Metadata
Assignees
Labels
No labels