2010-12-10 3 views
0

これはソフトウェアエンジニアの一般的な質問です。 低レベルでの処理エラーが多すぎる可能性があります。 一方、トップレベルでのハンドリングエラーは、情報の損失につながる可能性があります。 あなたはどう思いますか?エラーを親に、そして親を親に伝播するのは良い考えですか?

+0

これはhttp://programmers.stackexchange.com/の良い質問だと思います。 –

答えて

0

すべては要件に応じて異なります。

場合によっては、発信者が問題を処理するために装備されている可能性があるため、例外を発信者にバブリングしたいことがあります。 電子メールを送信することは、必ずしもシステム上重要なわけではないかもしれませんが、あなたの銀行口座にログインした人にあなたに知らせる必要がある場合には、そうすることができます。

一方、呼び出されたメソッドで処理する必要がある例外をバブルアップしたくない場合。 FTP経由でファイルをダウンロードするようなものを書いていた場合は、ちょっと後にもう一度やり直す予定がある場合は、接続が切断されるたびに発信者を気にする必要はありません。

これもやはり、これは経験則に基づいています。

1

本当にプログラムがエラーを処理し、有用な方法で報告し、有用な処理を続けることができる場所によって異なります。

たとえば、イベントを処理しているときに私が書いたUIコードでは、プライベートメソッドを呼び出してからエラーが発生するユーティリティメソッドを呼び出すことがあります。それが処理されているイベント、およびエラーをユーザーに報告するすべてのメソッドを認識していない可能性があるため、ユーティリティメソッドでの処理はあまり意味がありません。イベントハンドリングの第1レベルは、おそらくそれを処理するより良い状況にあり、処理を停止するか、または必要な調整を行うかのいずれかです。

一方、ユーティリティメソッドが使用されるすべての状況(おそらく再試行ロジックまたはプランBロジックがあります)でエラーを正当に処理できる場合は、ここに存在する可能性があります。

しかし、私がやったUIコードの多くは、特定の状況でそれを処理するのがより良い立場にあるため、通常は上位レベルに渡されます。

関連する問題