0

データベースへの挿入を実行する操作/メソッドがあります。いくつかのフィールドが必要であり、1 つ以上の入力が一意ではなかったり、一意である必要がある一部の内部レコードと競合したりするなど、さまざまな理由で操作が失敗する可能性があります。

saveUserInfo(primaryToken,secondaryToken,userid);

違反ごとにチェック例外をスローすることは理にかなっていますか?

私の考えでは、以下を使用することでした:

saveUserInfo(String primaryToken, String secondaryToken, String id) 
throws PrimaryTokenTakenException,SecondaryTokenTakenException

このメソッドを呼び出す開発者は、新しいトークンを要求するページに Web ユーザーをルーティングすることで、このメソッドに対処する必要があります。

反対 意見 このアプローチの反対者は、私たち開発チームは、これが失敗する原因となる各エラー ケースを認識しており、代わりにエラー コードを返し、それを使用して各ケースを処理する必要があると指摘しています。

int errorCode = saveUserInfo(primaryToken,secondaryToken,userid);

チェックされたアプローチに明らかな欠点は見られません。これらのエラー ケースは発生する可能性が非常に高く、saveUserInfo() が使用されている場合は必ず対処する必要があります。まさに状況チェック例外が作成されたようです。

4

1 に答える 1

0

プログラムがそれらのケースを検出して適切に回復できる限り、チェック例外を使用して無効なユーザー入力を処理することは、確かに有効で合理的なアプローチです。チェックされた例外は、プログラム インターフェイスがプログラム ロジック エラーの処理に関して契約を確立し、それに従う必要があることを意味します。一方、チェックされていない (実行時) 例外は、プログラムが実行時に安全に回復できないような方法で発生する例外です。例外を処理する方法は、開発チームの哲学によって異なりますが、チェックされている場合とチェックされていない場合は依然として有効です。無効な入力を検出して合理的に回復する方法を知っているので、それについて何かをする義務があります。

ガイドについては、このページre: Java の例外を参照してください。

于 2015-08-18T22:49:21.027 に答える