エラー処理をエレガントに実装するにはどうすればよいですか?たとえば、私のデータアクセスレイヤーは2種類のエラーを投げる可能性があります: 1)アクセスが許可されていない場合は、ページにすべてが隠され、エラーメッセージ が表示されます。2) (例えば、名前はユニークではないと言います)、この場合はすべてを隠したくありません。私は、このような等等NotAuthorizedException、DuplicateException、など派生の特殊な例外タイプを作成する必要があることを考案し、ここでいくつかのコメントの結果として3層アーキテクチャのエラー処理
....それはしかし、私が見ることができる、すべての罰金とダンディです:
EDITED潜在的に2つの問題:
1)格納されているすべてのprocには、エラーメッセージを含む戻りフィールドp_errorがあります。 DBからデータを取得する際に、このフィールドをチェックして、どのタイプのエラーが返されたかを確認する必要があります。そのため、適切な例外をスローすることができます。だから、私はまだ私のエラーの種類/エラーメッセージをどこかに保存する必要があります.....言い換えれば、p_errorフィールドを最初にチェックするw/oユーザーに正確なメッセージを送る必要があります。私はエラーオブジェクトに私を連れて来る。誰でも?
2)これは、例外の数がエラーメッセージの種類の数に等しい悪夢に変わる可能性があります。
ここに何か不足していますか?
多くの皆様に感謝します!
シンプルでエレガントな、私は実際にこのようなものを実装しました。 これの唯一の欠点は、 – sarsnake