不带事务的代码是这样的(外层的try-catch
已省略):
Connection conn = getConnection();
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
} finally {
conn.close();
}
如果要添加事务,rollback
在哪里调用?
如果在catch
中调用,那么捕获哪个异常?如果仅仅捕获SQLException
,那么抛出其它异常的时候怎么办?如果捕获Exception
,那么抛出的异常目前没法处理(例如RuntimeException
)又怎么办?
如果在finally
中调用,我怎么区分正常和异常情况?
Exception
はRuntimeException
をキャッチできませんか?Exception
无法捕获RuntimeException
的吗?JDBC
你只需要处理SQLException
即可JDK1.7之后一个
catch
JDBC
SQLException
を処理するだけです🎜🎜 🎜🎜JDK1.7 以降、1 つのcatch
ブロックで複数の例外を処理できるようになりました🎜🎜 🎜 リーリーリーリー
必要だと思う場合は、
RuntimeException
也rollback
了,但是上面的情况下,我觉得更应该考虑为什么会抛出RuntimeException
を入れてください。