1. ホーム
  2. language-agnostic

[解決済み] 例外やエラーコードの規約 [終了しました]。

2022-06-23 11:40:23

質問

昨日、私は同僚と、どのようなエラー報告方法が望ましいかについて熱い議論を交わしていました。主に、アプリケーション層またはモジュール間のエラーを報告するための例外またはエラーコードの使用について議論していました。

エラー報告のために例外を投げるかエラーコードを返すか決定するために、どのようなルールを使用しますか?

どのように解決するのですか?

私は通常、例外を好みます。なぜなら、例外にはより多くの文脈情報があり、(適切に使用された場合)プログラマにエラーをより明確に伝えることができるからです。

一方、エラーコードは例外よりも軽量ですが、保守が困難です。エラーチェックが不用意に省略されることがある。エラーコードは、すべてのエラーコードのカタログを保持し、どのようなエラーが投げられたかを確認するために結果をオンにする必要があるため、保守が困難です。エラーの範囲というのは、ここで役に立ちます。エラーの有無だけに関心があるのなら、チェックはよりシンプルになります(例えば、HRESULTのエラーコードが0以上なら成功、0未満なら失敗です)。開発者がエラーコードをチェックするというプログラム上の強制力がないため、うっかり省略されてしまうことがあるのです。一方、例外を無視することはできません。

要約すると、私はほとんどすべての状況で、エラーコードよりも例外を好みます。