Java不可访问代码错误
我正在为SmartFox服务器扩展创建一个Java类。它正在尝试访问MySQL数据库 我在Java不可访问代码错误,java,exception,smartfoxserver,Java,Exception,Smartfoxserver,我正在为SmartFox服务器扩展创建一个Java类。它正在尝试访问MySQL数据库 我在session.setProperty(“DatabaseID”,dbId)行上收到一个名为Unreachable code的错误 您的第二个if语句以结尾这是一个有效的语句。在下一个块中抛出异常,这就是错误的原因 if(!getApi().checkSecurePassword(session, dbPword, pass)); 上面的if语句以分号终止,分号是一个有效的语句,if语句将对其起作用,代码
session.setProperty(“DatabaseID”,dbId)行上收到一个名为Unreachable code
的错误代码>
您的第二个if语句以结尾代码>这是一个有效的语句。在下一个块中抛出异常,这就是错误的原因
if(!getApi().checkSecurePassword(session, dbPword, pass));
上面的if语句以分号终止,分号是一个有效的语句,if语句将对其起作用,代码的另一部分正在执行,而不管if语句是什么,这将在末尾引发异常
{
SFSErrorData errorData = new SFSErrorData(SFSErrorCode.LOGIN_BAD_PASSWORD);
errorData.addParameter(email);
throw new SFSLoginException("Bad password for user: "+ email, errorData);
}
这就是为什么会出现错误,因为您的行session.setProperty(“DatabaseID”,dbId)代码>永远不会到达 有一个假的代码>在上一个代码块之前:
if(!getApi().checkSecurePassword(session, dbPword, pass));
// ^
// |
// +---- remove this ';'
{
...
throw new SFSLoginException("Bad password for user: "+ email, errorData);
}
session.setProperty("DatabaseID", dbId);
因此总是执行抛出
,因此代码永远不会到达会话.setProperty()
,因为存在不需要的代码>在第二个if
之后,以下{}
块将始终执行。这意味着SFSLoginException
将始终被抛出,执行将跳转到捕获
这将导致永远不会调用setProperty
方法
您需要从代码中的以下语句中删除分号:
if(!getApi().checkSecurePassword(session,dbPword,pass))代码>如果(!getApi().checkSecurePassword(会话、dbPword、密码))。。。。。删除“;”不可访问的代码是编译时的,在这里我认为编译器只知道他永远不会有有效的密码。(这是将{
与条件语句放在同一行的另一个很好的论据——分号在视觉上更不合适。)
if(!getApi().checkSecurePassword(session, dbPword, pass));
// ^
// |
// +---- remove this ';'
{
...
throw new SFSLoginException("Bad password for user: "+ email, errorData);
}
session.setProperty("DatabaseID", dbId);