我正在写一个提交事务的方法。如果发生错误,我想抛出异常CommitTransactionException
。所以这将是方法:
public void commitTransaction() throws CommitTransactionException {
try {
connection.commit();
} catch (SQLException sqle) {
throw new CommitTransactionException(sqle);
}
}
现在无论提交成功还是失败,我还想将自动提交模式设置为true。所以我在考虑在这个方法中添加一个finally块,我将Autocommit模式设置为true:
finally {
connection.setAutoCommit(true);
}
但问题是setAutoCommit
方法可以抛出异常SQLException
所以如何处理该异常?
我想的一种方法是将异常SQLException
从setAutoCommit
方法转换为CommitTransactionException
异常:
public void commitTransaction() throws CommitTransactionException {
try {
connection.commit();
} catch (SQLException sqle) {
throw new CommitTransactionException(sqle);
} finally {
try {
connection.setAutoCommit(true);
} catch (SQLException sqle) {
throw new CommitTransactionException(sqle);
}
}
}
但是,即使Commit成功并且设置Autocommit模式失败,调用者也会认为Commit失败了。
这种类型的东西通常用Java来处理?