In Eclipse
Ho ricevuto un avvertimento Resource leak: 'ps' is not closed at this location
che non capisco.Resource avvertimento perdita nel eclisse
Nel mio codice Java
dichiaro il "ps" come una dichiarazione preparata e uso (e chiudere) molte volte. Poi ho la seguente sequenza:
try {
if(condition) {
ps = c.prepareStatement("UPDATE 1 ...");
} else {
ps = c.prepareStatement("UPDATE 2 ...");
}
ps.executeUpdate();
} catch (SQLException e) {
// exception handling
} finally {
if (null != ps)
try {
ps.close();
} catch (SQLException e) {
// exception handling
};
}
la "risorsa fuga" -Warning si accende il "Update" -Riaffermazione nella sezione altro. Se ho impostato ps = null
prima di iniziare il blocco try, non v'è alcun avvertimento.
Se il secondo UPDATE-Statement è commentata, verrà mostrato nessun avvertimento.
È che la comprensione o un Java/Eclipse problema?
La mia ipotesi è che Eclipse rilevi che stai usando l'oggetto statement preparato in precedenza e, a causa del potenziale per SQLException, potrebbe non chiuderlo correttamente. Se esegui 'ps = null;' nel blocco finally sarà probabilmente risolto e questo sarebbe un posto più razionale per ripulirlo. –