代码:Java尝试抓住,最后。如果发生异常,最终还是会保留参考?
try {
dbConnection = jdbcTemplate.getDataSource().getConnection();
callableStatement = dbConnection.prepareCall(getDBUSERCursorSql);
}
catch (SQLException e) {
LOGGER.error("Error occured", e);
}
finally
{
if (dbConnection != null && !dbConnection.isClosed()) {
dbConnection.close();
}
}
因此,如果在线路的CallableStatement = dbConnection.prepareCall(getDBUSERCursorSql)发生异常;并且catch块执行后,将会在finally块中仍然存在对dbConnection
的引用吗? Fortify说不,但我不确定增强是否正确。
nope,因为异常将在赋值之前抛出 – JohnnyAW
我认为只要'dbConnection'被定义在'try catch'之外锁定它仍然存在。试一试? :) –
@ EM-Creations这个问题不是关于变量是否可用,它关于对dbConnection的引用:) – JohnnyAW