谁能想到一个合理的原因为什么SQLException
是一个检查异常?
是的,查询中可能存在语法错误
是的,连接可能已断开
是的,可能存在权限问题
等等等等等等等等等等
但几乎 100% 的时间(一旦你在生产中运行),没有任何问题。
如果出现问题,调用代码无法进行任何恢复,因此应该取消选中。
检查会在整个代码中创建大量敷衍的try catch
块,任何参与过使用 JDBC 的项目的人都会证明这一点。代码混乱很严重。
由于 SQL 的深奥性,你可能会得到一个 SQLException 的无数原因及其复杂性意味着你基本上无法恢复,除非异常是由临时网络问题引起的,但即使在同步调用中,你还是沉没了因为你不能无限期地等待网络问题得到解决,所以你将不得不让交易失败。
通常,调用 SQL 如下所示:
try {
// make some SQL call(s)
} catch {SQLException e) {
// log the exception
return; // and give up
}
这样的代码没有任何价值。您无法采取任何合理的措施来恢复。您不妨让运行时异常冒泡——即 SQLException 应该是运行时(未经检查的)异常。