Java终于阻止了问题
|
是否有内置的方法来确定finally块中是否刚从catch块出来?我知道可以使用下面的变量轻松完成此操作,但是我只是想知道是否存在标准的内置方法。
boolean bException = false;
try
{
dbf = new DBFunctions();
dbf.db_run_query(query2);
dbf.rs.next();
nMonth = dbf.rs.getInt(\"calquarter\") * 3;
nYear = dbf.rs.getInt(\"calyear\");
}
catch (SQLException sqle)
{
out.println(sqle.toString());
bException = true;
}
finally
{
dbf.closeConnection();
if (bException == true)
return;
}
更新:这是closeConnection()方法的内容,该方法只是试图关闭所有数据库对象:
public void closeConnection()
{
if (rs != null)
{
try { rs.close(); } catch (SQLException e) { ; }
rs = null;
}
if (stmt != null)
{
try { stmt.close(); } catch (SQLException e) { ; }
stmt = null;
}
if (con != null)
{
try { con.close(); } catch (SQLException e) { ; }
con = null;
}
}
没有找到相关结果
已邀请:
3 个回复
痰嫉
放在
块中可能会更好。
块仍将运行。
程琶
然后,您的finally块将知道是从正常终止还是异常终止中调用了它。 编辑:最好不要在finally块中返回,因为它会吞噬异常。从代码(或从语言规范!)看,这是隐式的并且不清楚。如所写,您的finally块将阻止SQLException的传播。如果那是您想要的,则对catch块执行此操作以使其明确。请参阅从Java中的finally块返回。
程琶
块的目的是执行无论是否存在异常都必须执行的操作。