3 層アプリを作成していますが、エラー処理に問題があります。問題を他のレイヤーに伝えるために、例外をスローする必要があるのか、メソッドを呼び出す必要があるのか わかりません。
簡単な例を次に示します。
-FileChooserFrame
ユーザーがリスト内のファイルを選択できるようにする (プレゼンテーション層)。
-DataHandler
ファイルのパスを処理し、プレゼンテーション層とデータ層の間のリンクを行う (アプリケーション層)。
-FileParser
ファイルを解析してそこからデータを取得する (データ層)。
ここで、ファイルが特別な構造に従う必要があるとしましょう。そうでない場合は、MessageBox を表示します。
ユーザーが解析する前に適切なファイルを選択したかどうかを知ることはできません。
私の質問は、ファイルが構造に従っていないことがわかった場合、どうすればよいですか?
私は 2 つのことを考えました:
1 - 現在のアクションを停止し、フレームに messageBox を表示するように要求するDataHandler
(例: ) のメソッドを呼び出します。2 -ポップアップを表示
するカスタム例外をスローします。NotifyWrongFileErr()
FileChooserFrame
どちらの場合も一長一短があるので、どちらかを選ぶことはできません。何をするのが最も適切でしょうか?
PS: n°2 の場合、どこに例外クラスを記述しますか? アプリの例外専用のファイル内、またはそれをスローするクラスの隣に?