0

申し訳ありませんが、私はSpringとJavaが初めてで、これは何度も取り上げられている可能性がありますが、アドバイスが必要でした.

既存の REST ベースの XML Web サービスからユーザー データを取得する必要がある Spring Web アプリケーションを作成しています。Spring REST テンプレートを使用して Web サービスを呼び出すドメイン オブジェクト、サービス、および DAO を作成します。

DAO では、次のようなメソッドを作成するつもりでした。

public User getUser(String userId)

問題がある場合 (たとえば、ユーザー アカウントがロックされているか削除されている場合)、Web サービスは 200 応答を返し、XML 応答にエラー コードを挿入します。これらのエラーはアプリケーションに表示される必要があり、ユーザーにカスタム エラー メッセージを表示できるように、エラーを識別できる必要があります。これらのエラーを処理するための推奨される方法は何ですか?

  1. エラー応答コードごとに異なる例外 (ランタイム) を定義し、これらをメソッド シグネチャに追加します。
  2. 単一の例外 (UserException など) を使用し、異なるメッセージを使用します。
  3. 他のことをする

どんな助けでも大歓迎です。

4

2 に答える 2

2

Extension を拡張して、エラーの種類ごとに異なる例外を使用したい。異なるものが多数ある場合は、クラス継承を使用してそれらをグループ化してみてください。例はそれをより簡単にするでしょう。アカウントの削除とアカウントのロックの 2 種類のエラーがあるとします。次のようにします。

class AccountException
    extends Exception {
}

次に、アカウントの問題に関連するすべてのエラーに対してアカウント拡張機能を拡張します。たとえば、次のようになります。

class AccountLockedException
    extends AccountException {
}

class AccountDeletedException
    extends AccountException {
}

など...このようにして、それを明確にし、すべての例外に目を通す必要はありません。私が十分に明確であるかどうかはわかりません。これが私の最初の答えです。GL!

于 2013-05-16T23:36:34.147 に答える
0

カテゴリに対して単一の Exception クラスを作成します。たとえば、すべてのユーザー関連の例外に対して、次のようなものを作成できます。この方法では、1 つの例外をキャッチし、エラー コードを検証して、例外の原因を見つけることができます。

public class MyException extends Exception{
        public static final int ERR_USER_NOT_FOUND  = 101;
        public static final int ERR_DB_ACCESS_ERR = 500;

        private int errorCode;
        public MyException(int errCode){
            this.errorCode = errCode;
        }

        public int getErrorCode() {
            return errorCode;
        }
    }
于 2013-05-16T23:52:43.483 に答える