【Golang】独自エラーを実装するメリット
2022年04月10日 16:40
こんにちは
Goでエラーハンドリングを実装するにあたり独自エラーの導入を検討しました。独自エラーについては色々な考え方や実装方法が載っていたので、改めて自分なりに独自エラーのメリットを整理しました。
ざっくりいうと運用しやすくなることだと思いました。具体的にどこで運用のしやすさの恩恵を受けているかを書いていこうと思います!
ちなみに今回はこのような独自エラーコードを実装しました。
少しレスポンスの出し方に加工が必要ですが、このようなイメージで返却することができます。下記はエラーをスタックしてエラーコードとエンドユーザー向けのエラーメッセージを返却しています。フロントではこのレスポンスを受け取ってそのままユーザーフレンドリーなエラーメッセージをそのまま出力したり、エラーコードによって条件分岐もしやすくなります。
(ginのwebフレームワークを使って出力しています)
レスポンス
これがただエラーメッセージをWrapしただけだとこんな感じになります。
レスポンス
メッセージも長く、フロントでの利用も難しくなります。コード管理することやユーザーフレンドリーな形で独自エラーを定義する重要性がわかります。
独自エラーを定義することで、エラーパターンのテストがシンプルになります。下記はBookを作成する関数のテストです。独自エラーをエラーパターンのexpectedに設定することで、expectedをassert.Equal
のみで比較することができます。
独自エラーがない場合、assert.Equal
でerror比較ができないのでassert.EqualError
でエラーメッセージを比較する必要があります。その分検証ポイントも1つ増えてしまうのでテストの可読性が低くなってしまいます。
独自エラーを導入することによるメリットを書いてみました。独自エラーを導入したいがメリットがあまりわからないと思った方の参考になれば幸いです。
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。