前提・実現したいこと
GOでgRPCのサーバーを勉強・実装をしております。
クライアント側はbloomrpcを使用しています。
サーバー側で"err"についての処理を書くと思うのですが、
どう処理するのが正解かが分からず教えていただきたいです。
(そもそもプログラミング自体初心者のため、エラーハンドリングについても理解が薄いです)
サーバー側ではDBへのアクセス、処理をしております。
公式のexampleやいろいろな方のソースを見てみると、
・log.Fatalf("コメント: %v", err)
・panic(err.Error())
の2パターンが見受けられました。
以下の2点が気になっております。
①errが存在した場合、両方ともプログラムが終了してしまうがエラー処理としてそれが正しいのか。(終了しないほうが良いのかと思っているのですが、、)
+この場合はクライアント側には何か帰っているのか?(クライアント側がエラーを検知できるのかを気にしています)
例えば、DBからIDを基にUserを取得したいときに存在しないIDが入力された場合。
プログラムを終了するのではなく、入力したIDが違う旨をクライアント側に返したほうが良いと思うのですが、、、
②クライアント側にそのままreturn errで戻してあげて、クライアントでエラーハンドリングすればいいのではないかと考えているのですが、この考えは危険でしょうか。
よろしくお願い致します。
該当のソースコード
if err != nil {
log.Fatalf("コメント: %v", err)
もしくは、
panic(err.Error())
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/21 06:20