如何在这种情况下返回true或false?

时间:2016-07-22 20:32:30

标签: java android boolean

这是我的代码

print(sum_double(1, 2))
3

print(sum_double(2, 2))
8

如果rs不为null,我想返回true,否则返回false。

但是我在这个方法的结束时遇到错误。它要求我再次返回true或false,即使我之前在try catch块中这样做了。

这是我第一次使用java。

请帮助!

4 个答案:

答案 0 :(得分:3)

做这样的事情

public boolean changePassword(String password, String id) {
  boolean result = false;

try {

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection(DB_URL, DBuser, DBpassword);


    Statement st = conn.createStatement();
    String updateQuery = "update teacher_registration set password="+password+"where teacher_id="+id;
    ResultSet rs = st.executeQuery(updateQuery);

    if(rs!=null){
        result = true;
    }else{
        result = false;
    }
} catch (Exception e) {
    e.printStackTrace();
}
 return result;
}

答案 1 :(得分:1)

你的错误是你在try块中返回值。如果出现问题,你就不会退货。尝试在try块之外移动return语句或添加return false;在阻挡之后。

答案 2 :(得分:1)

我认为更新查询件不能很好地结合在一起。

在这种情况下,'其中'成为您密码的一部分(最后)。

试试这个:

String updateQuery = "update teacher_registration set password="+password+" where teacher_id="+id;

另外,你可以将你的情况转移到 catch 区块,或者做得更好,如下图所示。

您的代码的完整版本:

public boolean changePassword(String password, String id) {

    try {

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(DB_URL, DBuser, DBpassword);


        Statement st = conn.createStatement();
        String updateQuery = "update teacher_registration set password="+password+" where teacher_id="+id;
        ResultSet rs = st.executeQuery(updateQuery);
        if(rs!=null){
            return true;
        }

    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }

}

答案 3 :(得分:0)

如果您的try块中生成了异常,则不会返回您的return语句。捕获异常后,您只需返回一个值。我假设如果更改成功则返回true,因此如果存在异常则返回false。

try{
    // Your code
} catch (Exception e) {
    e.printStackTrace();
}
return false;