これはソフトウェアエンジニアの一般的な質問です。 低レベルでの処理エラーが多すぎる可能性があります。 一方、トップレベルでのハンドリングエラーは、情報の損失につながる可能性があります。 あなたはどう思いますか?エラーを親に、そして親を親に伝播するのは良い考えですか?
答えて
すべては要件に応じて異なります。
場合によっては、発信者が問題を処理するために装備されている可能性があるため、例外を発信者にバブリングしたいことがあります。 電子メールを送信することは、必ずしもシステム上重要なわけではないかもしれませんが、あなたの銀行口座にログインした人にあなたに知らせる必要がある場合には、そうすることができます。
一方、呼び出されたメソッドで処理する必要がある例外をバブルアップしたくない場合。 FTP経由でファイルをダウンロードするようなものを書いていた場合は、ちょっと後にもう一度やり直す予定がある場合は、接続が切断されるたびに発信者を気にする必要はありません。
これもやはり、これは経験則に基づいています。
本当にプログラムがエラーを処理し、有用な方法で報告し、有用な処理を続けることができる場所によって異なります。
たとえば、イベントを処理しているときに私が書いたUIコードでは、プライベートメソッドを呼び出してからエラーが発生するユーティリティメソッドを呼び出すことがあります。それが処理されているイベント、およびエラーをユーザーに報告するすべてのメソッドを認識していない可能性があるため、ユーティリティメソッドでの処理はあまり意味がありません。イベントハンドリングの第1レベルは、おそらくそれを処理するより良い状況にあり、処理を停止するか、または必要な調整を行うかのいずれかです。
一方、ユーティリティメソッドが使用されるすべての状況(おそらく再試行ロジックまたはプランBロジックがあります)でエラーを正当に処理できる場合は、ここに存在する可能性があります。
しかし、私がやったUIコードの多くは、特定の状況でそれを処理するのがより良い立場にあるため、通常は上位レベルに渡されます。
- 1. 将来、親アクターにエラーを伝播する方法
- 2. GWT - 子供のイベントからその親に伝播を停止する方法
- 3. 親コンテナからスクロールイベントを子コンテナに伝播する
- 4. argLineは親pom.xmlから子モジュールに伝播されますか?
- 5. Jqueryイベントのタッチ伝播親子(リンク)
- 6. Djangoモデルで親属性を伝播する方法は?
- 7. 子プロセス内のSIGINTが親プロセスに伝播し、親プロセスを強制終了させないようにするにはどうすればよいですか?
- 8. 親UIViewControllerが子にdidRotateFromInterfaceOrientationを伝播する必要がありますか?
- 9. AngularJSのディレクティブの親スコープに値を手動で伝播するにはどうすればよいですか?
- 10. ReactJS setStateが親コンポーネントから子コンポーネントに伝播しない変更
- 11. vue JSが親からコンポーネントへの変更を伝播しない
- 12. 子が$(body)を介してバインドされている場合、親divの伝播を停止しますか?
- 13. 親から別の親にCCSpriteを転送するには?
- 14. AGPBI:エラーは、アイテムの親を取得する:いいえリソースは
- 15. は、このマークアップとスタイルを考える親の残りのスペース
- 16. アクセス親のメンバーは、次のコードを考える
- 17. は親の前の兄弟を考えるとXSLT
- 18. 検索親と最初の子は、私は要素の親を見つけようとしていますし、それが親の最初の子の親
- 19. 親指を生成する良い方法は何ですか?
- 20. DialogFragmentから親にデータを戻そうとしています
- 21. jqueryの親、親、そして最も近い私は下のDOM構造を持って選択するか、セクションタグ
- 22. レール:親の親の親から範囲
- 23. クリックが親に伝達されないようにする
- 24. SQL親子 - 親親
- 25. jqueryを使用して親の親のチェックボックスをオンまたはオフにする
- 26. JavaScriptを使用して親iframeの親iframeを取得するにはどうすればよいですか?
- 27. が、それは親
- 28. onClickの親の親に対してonClickが設定されていますか?
- 29. アクティブなレコードの親のエラーから子オブジェクトにアクセスできますか?関係を考えると
- 30. SQL - その親の子の数に基づいて親のすべての行を取得する方法?
これはhttp://programmers.stackexchange.com/の良い質問だと思います。 –