我是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 异常中的打印,因此我能够快速找到错误并进行调试。