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