Je suis Java débutant, mais je pensais que lors de l'utilisation try-catch-finally Je n'ai pas de déclarer l'exception en utilisant throws SQLException
. Toutefois, si je ne l'utilise pas le compilateur me donne l'erreur:try-catch-finally jeter exception problème Java
"unreported exception java.sql.SQLException; must be caught or declare to be thrown".
J'inclus un hic donc je ne sais pas pourquoi cette erreur se produit.
public static ResultSet getResultSet (String query)
{
dbConn = getConnection();
try
{
stmt = dbConn.createStatement();
ResultSet rs = stmt.executeQuery(query);
return rs;
}
catch (SQLException ex)
{
return null;
}
finally
{
stmt.close();
dbConn.close();
}
}
Aide, beaucoup de matrices de chatons. Vous avez déclaré 'dbConn' et' stmt' comme 'static'. Ce code n'est définitivement pas sécurisé. Je recommande fortement de refaire les tutoriels Java et JDBC de base. – BalusC
Vous obtiendrez également 'SQLExceptions' lorsque vous utiliserez' ResultSet', donc vous pourriez propager l'exception. Le 'ResultSet' ne fonctionnera probablement pas après la fermeture de la connexion. Vous pourriez envisager l'idiome Execute Around. http://stackoverflow.com/questions/341971/what-is-the-execute-around-idiom –
FWIW: la pratique * normal * consiste à mapper le 'ResultSet' sur une' Liste 'et de le retourner à la place. Pour quelques exemples, [head here] (http://stackoverflow.com/questions/3148092/java-jdbc-mysql-connector-how-to-resolve-disconnection-after-a-long-idle-time/3148857#3148857) et [ici] (http://stackoverflow.com/questions/1813858/sqlite-3-jdbc-driver-throws-resultsset-closed-exception-on-empty-resultset/1814443#1814443). –
BalusC