编译错误:缺少return语句

Xri*_*ris 1 java compiler-errors

我有一个方法,它将一个字符串值作为参数,然后检查数据库中是否存在该字符串值!如果字符串值已经存在,则该方法应返回true,否则返回false!在我运行该方法之前,我收到编译错误"缺少return语句"!有没有人在下面的代码中发现错误?

 public boolean checkID(String sid)
 {
    try 
    {
        String sessionID = null;
        if(dBConnection.connect())
        {
            Connection con = dBConnection.getConnection();
            String query = "SELECT sidvalue FROM sessionid where tokenvalue='" + sid + "'";
            Statement pstmt = con.createStatement();
            ResultSet resultset = pstmt.executeQuery(query);

            while (resultset.next())
            {
                sessionID = resultset.getString(1);
                if(sid.equalsIgnoreCase(sessionID))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            dBConnection.disconnect();     
        }//End of If statement

    }//End of Try block
    catch (Exception e)
    {
        System.out.println(e);
        return false;
    }
 }//End of method
Run Code Online (Sandbox Code Playgroud)

Juv*_*nis 6

如果执行没有传递给if语句和/或while循环怎么办?这种情况没有返回值.使用布尔变量或false值返回.只需return false;在此行之后添加一个语句dBConnection.disconnect();,即在try块的if语句中的while循环之后,它就会完成.

顺便说一句,我建议你在一个finally子句中使用数据库断开语句,而不是在try块中.dBConnection.disconnect();如果您的方法在while循环内返回任何值,则很可能不会执行.将此行移动dBConnection.disconnect(); 到catch块之后的finally块,如下所示:

try
{
...
}
catch(Exception e)
{
...
}
finally
{
   dBConnection.disconnect();   
}
Run Code Online (Sandbox Code Playgroud)