0

抱歉,我是 Spring 和 Java 的新手,这可能会涉及很多次,但我想得到一些建议。

我正在创建一个 Spring Web 应用程序,它需要从现有的基于 REST 的 XML Web 服务中检索用户数据。我将创建一个域对象、服务和 DAO,它使用 Spring REST 模板来调用 Web 服务。

在 DAO 中,我将创建一个这样的方法:

public User getUser(String userId)

如果出现问题(例如,如果用户帐户被锁定或被删除),Web 服务会返回 200 响应并在 XML 响应中放入错误代码。这些错误应该显示在应用程序中,我需要能够识别错误,以便向用户显示自定义错误消息。处理这些错误的推荐方法是什么,我应该:

  1. 为每个错误响应代码定义不同的异常(运行时)并将它们添加到方法签名中
  2. 使用单个异常(例如 UserException)并使用不同的消息。
  3. 做点别的

任何帮助将不胜感激。

4

2 回答 2

2

您希望通过扩展 Extension 为每种错误类型使用不同的异常。如果您有许多不同的,请尝试使用类继承对它们进行分组。一个例子会使它更简单。假设您有这两种错误,帐户删除和帐户锁定,您会这样做:

class AccountException
    extends Exception {
}

然后为涉及帐户问题的所有错误扩展帐户扩展,例如:

class AccountLockedException
    extends AccountException {
}

class AccountDeletedException
    extends AccountException {
}

等等......这样你就可以让它一清二楚,而不必查看所有的例外情况。不确定我是否足够清楚,这是我在这里的第一个答案。GL!

于 2013-05-16T23:36:34.147 回答
0

我会为一个类别创建一个 Exception 类。例如,对于所有与用户相关的异常,您可以创建如下所示的内容: 这样,捕获一个异常并验证错误代码以找出导致异常的原因将是干净的。

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 回答