私はJavaを初めて使用しますが、すぐに習得しています。私がよく遭遇することの 1 つは、クエリでいっぱいの 1 つの関数と一般的なコードだけを使用することになり、それを個別の関数に分割したいということです。たとえば、次のようにします。
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;
}
理想的には、これは私がやりたいことであり、1 つの関数内にすべての 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
関数内で処理され、 が呼び出されたときに getApples 例外_resultSet.next()
を取得して出力するため、エラーを見つけてすばやくデバッグできます。NullPointerException