2011-07-06 7 views
0

ビジネスロジック以外の問題のためにスローされたRemoteExceptionとそのすべてのサブクラス以外に、ビジネス関連の例外を処理する正しい方法は何ですか? これらのケースでRuntimeExceptionをサブクラス化することはできますか?ビジネス例外はチェックされないままにしておきますか?SpringのHTTP Invokerを介して公開されているリモートサービスからの例外のスローに関するベストプラクティス?

答えて

0

低レベルの接続、データベース、ファイルアクセスなどの例外とは異なり、ビジネスロジックの例外は実際にはチェックされた例外の唯一の正当なケースです。

+0

チェック例外以外のビジネスロジック例外を使用するのは一般的なルールであり、その他のチェックされない例外はサービスクライアントによって処理不能/回復不可能な例外として取られるべきですか? – rbajales

+0

CheckedとUncheckedはJavaの世界で進行中の議論です。最新のファッションafaikは可能な限りどこでもチェックされたくないので、例外スローが下位レベルで追加/削除されたときにクラスのシグネチャは変更されません。チェックされた例外は、最も重要なコードシナリオのために予約されています。すべての呼び出しパスで発生するすべての例外を確認する必要があるときです。 –

+0

@rbajales:これは容認できるアプローチだと私は信じています。しかし、私は個人的には、サービスレベルですべてのランタイム例外をキャプチャしようとすると、クライアントから直接アクセスできるビジネスロジックのレベル、および単一のビジネスロジック例外として再構築しようとします。例外メッセージにあります。 – Olaf

関連する問題