我是java新手,但我很快就学会了。我一直遇到的一件事是我最终拥有一个充满查询和一般代码的函数,我想将它分解为单独的函数。以此为例:
public ResultSet getApples (){
    ResultSet rs;
    try{
        PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
        rs = stmt.executeQuery();
    } catch (SQLException e){
        e.printStackTrace();
    }
    return rs;  
}理想情况下,这将是我想要做的,在一个函数中拥有所有的 try 和 catch,但这给了我错误:Local variable may not have been initilized
我确实意识到我可以这样做:
public function start(){
    try{
        ResultSet apples = getApples();
    catch (SQLException e){
        e.printStackTrace();
    }
}
public ResultSet getApples () throws SQLException { 
    PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
    return stmt.executeQuery();
}但我真的更希望在函数内处理异常并返回结果。
编辑
好吧,对所提供的内容进行修改后的答案。我在这个问题上的全部目标是使我的脚本的主要功能尽可能干净。即使是额外if ( _resultSet != null )的东西,我也不是很喜欢。话虽如此,我对这个结果很满意:
public ResultSet getApples (){
    try{
        PreparedStatement stmt = con.prepareStatement("SELECT * FROM fruit WHERE type='apples'");
        return stmt.executeQuery();
    } catch (SQLException e){
        System.out.println("************************");
        System.out.println("Class.getApples null");
        System.out.println(e.getMessage());
        return null;
    }   
}一切都在getApples函数内处理,当_resultSet.next()被调用时,我得到 aNullPointerException和 getApples 异常中的打印,因此我能够快速找到错误并进行调试。