管理Block Java

时间:2014-09-23 00:13:12

标签: java

我有这个块:

ConnectToServer.login(user, pw, new CallbackVoid() {

    @Override
    public void onSuccess() {
        onSuccessLogin(pw, user);
    }

    @Override
    public void onFailure(Throwable cause) {

    }
});

我的问题是:

打电话"登录"方法我在我的服务器上执行登录,如果成功,我去onSuccess方法,否则我去onFailure。 我的问题是,我可以进入" onFailure"方法有两个原因:

1)用户名或密码不正确

2)连接服务器时出现问题

我希望看到不同的错误消息。 例如,如果用户名错误,我希望看到"用户名不正确"如果你还没有与服务器建立连接,我会看到"稍后再试#34;

但要做到这一点,我需要知道错误的确切原因我该如何?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

onFailure()方法有一个Throwable cause参数。这是发生的实际异常(或错误)。

通常只需检查cause的实际类就足以了解问题所在。例如,如果causejava.io.IOException的实例,则可能是某种IO错误,而不是错误的用户名/密码。

我的建议是检查输入错误的用户名或错误密码时返回的异常类(如果它们返回不同的值,请同时尝试两者),然后编写如下代码:

if(cause instanceof TheBadUsernameOrPasswordException){
  //TODO manage your wrong username or password here
}else{
  //TODO manage any other type of error here
}

在任何情况下,您都应该记录确切的异常,以便管理员可以对其进行调试。