我有这个块:
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;
但要做到这一点,我需要知道错误的确切原因我该如何?
感谢您的时间
答案 0 :(得分:0)
onFailure()
方法有一个Throwable cause
参数。这是发生的实际异常(或错误)。
通常只需检查cause
的实际类就足以了解问题所在。例如,如果cause
是java.io.IOException
的实例,则可能是某种IO错误,而不是错误的用户名/密码。
我的建议是检查输入错误的用户名或错误密码时返回的异常类(如果它们返回不同的值,请同时尝试两者),然后编写如下代码:
if(cause instanceof TheBadUsernameOrPasswordException){
//TODO manage your wrong username or password here
}else{
//TODO manage any other type of error here
}
在任何情况下,您都应该记录确切的异常,以便管理员可以对其进行调试。