try-with-resources and null resource (original) (raw)
Tom Hawtin tom.hawtin at oracle.com
Mon Jan 31 12:26:14 PST 2011
- Previous message: try-with-resources and null resource
- Next message: try-with-resources and null resource
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 31/01/2011 19:51, Vimil Saju wrote:
The following code pattern is present at many places in our code base. List records = new ArrayList(); ResultSet rs = null; try { rs = executeQuery(st); records = fetchRecords(rs, returnClass); } catch(Exception ex) { logDBError(ex); throw new DBException(ErrorCodes.DBFETCHERROR, ex); } finally { freeUp(rs); } return records; How would the about code look like with the new try-with-resources syntax?
Looks like copy-and-paste messed up the formatting:
List<T> records = new ArrayList<T>();
ResultSet rs = null;
try {
rs = executeQuery(st);
records = fetchRecords(rs, returnClass);
} catch (Exception ex) {
logDBError(ex);
throw new DBException(ErrorCodes.DB_FETCH_ERROR, ex);
} finally {
freeUp(rs);
}
return records;
I'm going to assume that executeQuery does not return null and that freeUp closes the ResultSet if non-null and wraps the SQLException as a DBException.
try {
try (ResultSet rs = executeQuery(st)) {
return fetchRecords(rs, returnClass);
}
} catch (Exception ex) {
logDBError(ex);
throw new DBException(ErrorCodes.DB_FETCH_ERROR, ex);
}
(I've left catch Exception in, although usually such a broad catch would be considered a bad idea in most situations.)
The Execute Around idiom is still a good idea. A better idea when we have concise anonymous inner class syntax/lambdas. (Or an ORM!)
Tom
- Previous message: try-with-resources and null resource
- Next message: try-with-resources and null resource
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]