因为你的try里面可能会没语句!

解决方案 »

  1.   

    因为你的方法是要返回类型的,像你说的把else删掉,当然会提示你要返回一个值了,因为if else是程序的分支,有可能执行if分支,也有可能执行else分支。
      

  2.   

    if (rs.next()) {
              m_Test= new GX_PH_Measure(); 
              m_Test.setModel_number(rs.getString(2));        
              return m_Test;
              }else {
                throw new SQLException (//你把这两句删了,万一运行ELSE里面,一你没有反回值,又没有扔出异常。所以编辑器会提示你错误
                "error.removed.Test");//
            }
      

  3.   

    因为你的方法要你总是返回类型的,你把else删掉,假如要是执行else分支,不就不返回那个类型了吗
      

  4.   

    if (rs.next()) {
              m_Test= new GX_PH_Measure(); 
              m_Test.setModel_number(rs.getString(2));        
              return m_Test;
              }
    return null;//这样都可以的,方法体不能没有返回值,if里面的返回是一个可能性的,
    加上
    else{}的话,那就是必然了,如果,否则,
    呵呵,加油。
      

  5.   

    这个问题的答案如上面所说,你的方法有返回值,如果在主干中有即使用return null也不会报错,否则所有分支都得返回
      

  6.   

    因为throw一个exception,就会认为这个方法没有正常执行所以虽然你开始的时候没有在else里面返回结果,编译也是成功的。