将rs1.getInt("id");放进try中,如aa=rs1.getInt("id");,
最后return aa;

解决方案 »

  1.   

    要捕捉SQLException例外,建议把返回值赋给一个变量,关闭记录集,再返回这个变量.
      

  2.   

    你把函数声明改成这样就可以了:
    public int checkUser(String e_name,String pw)throws Exception{
      ....
    }
    关键在于“throw Exception”,他把该函数体内所有捕捉到的异常不做任何处理直接抛出到外层!
    你之所以需要这么做是因为:
    ResultSet类的getInt()方法会抛出一个异常,你用到这个方法的时候,要不你就处理这个异常,要不就继续抛出!像我上面的代码就是把异常继续抛出!
    你也可以在自己的函数里处理这个异常,改为如下代码:
    public int checkUser(String e_name,String pw){
      。。
      //用下面的代码替换:return rs1.getInt("id");
      int key=0;
      try{
        key=rs1.getInt("id");
      }
      catch(Exception ex){
        System.out.println("读数据出错!");
      }
      return key;
    }
      

  3.   

    int sss;
    try {
    strQuery="select id,e_name,pw from DT_gsk WHERE e_name='"+e_name+"'";
    rs1=db.query(strQuery);
    if (!rs1.next())
    return -1;//用户不存在
                               sss = rs1.getInt("id");
    strPassword = rs1.getString("pw");
    if (!strPassword.equals(md5.getMD5ofStr(pw)))
    return -2;//密码不正确

    } catch (Exception e) {
    return 0;
    }
                       return sss;
      

  4.   

    有异常产生,需要在try {}catch{} 中扑做,或者直接在函数上加上throws Exception就可以了