omega blog

tech memo

握りつぶしについてまとめ

エラーを返さない(握りつぶす)実装が問題な理由:

  1. エラーハンドリングの透明性が失われる エラーが発生時に呼び出し元にエラーを返さないと、呼び出し元はそのエラーが発生したことに気づくことができない。 その結果、プログラムは予期しない状態になり、デバッグが困難になる。

  2. 障害の伝播が阻まれる エラーを上位の関数に伝播させることで、より適切なエラーハンドリングや復旧処理を実行できるようになる。 握りつぶしてしまうと上位の関数がエラーを感知できず、問題に対処する機会が失われる。

  3. デバッグが困難になる エラーを握りつぶすと問題が発生した箇所を特定するのが難しくなる。 エラーが発生した場所や原因を特定しやすくするためには、エラーを適切に伝播させ、エラーメッセージやstacktraceを利用することが重要。

  4. 可読性や保守性が低下する エラーを返さないことでコードの可読性や保守性が低下する。 他の開発者がコードを理解し、修正や拡張を行いにくくなる。

以上の理由から、エラーを適切に返すことが重要。 基本的には、関数がエラーを返すべき状況でエラーを返し、呼び出し元で適切なエラーハンドリングを行うことが望ましい。親関数にエラーを返して、そのエラーに対処することで、プログラムの堅牢性や保守性が向上する。