Tworzę pliki JDBC Statement
i ResultSet
.Upewnij się, że obiekty są zamknięte, jeśli zostanie zgłoszony wyjątek.
Findbugs słusznie zwraca uwagę, że nie podaję tych close
, jeśli zostanie zgłoszony wyjątek.
Więc teraz mam:
Statement stmt = null;
ResultSet res = null;
try {
stmt = ...
res = stmt.executeQuery(...);
...
} finally {
try {
if(res != null)
res.close(); // <-- can throw SQLException
} finally {
if(stmt != null)
stmt.close();
}
}
(Tylko mam raczej więcej zestawów wynik i przygotowane oświadczeń i tak dalej otwarty ... więc moja zagnieżdżanie finally
s jest raczej głębiej)
Nie ma w lepszy sposób, aby zapewnić, że duża liczba zestawów wyników zostanie zamknięta?
(Na marginesie: w Symbian nigdy nie pozwolili destruktory/zamknij/odblokowanie/usuń metody -Type rzucać żadnych błędów Myślę, że to bardzo dobra decyzja projekt, który wszyscy close
metody JDBC może rzucać SQLException
sprawia, że rzeczy niepotrzebnie skomplikowane.. w mojej opinii.)
dlaczego masz 'try-finally' w swoim' końcu'? powinno być trochę 'catch' .... prawda? – Bill
Co powiesz na przechowywanie wszystkich zestawów i zestawów wyników na liście i powtarzanie ich na listach? – reporter
@Bill: W przypadku pierwszego "zamknięcia" zgłasza wyjątek. –