识别由于网络问题导致的 SQLException
我正在开发一个使用 3 个不同数据库(Oracle 和 MSSQL)的 Web 应用程序。该应用程序包含 spring 和 hibernate 框架。在此应用程序中,如果数据库出现故障或出现某些网络问题,我必须以不同的方式处理(在尝试访问数据库时)。目前,如果出现上述情况,我得到 SQLException 是最不重要的原因。如何确定抛出的 SQLException 是由于网络问题还是某些查询/数据问题?
I am developing a web application which uses 3 different databases(Oracle & MSSQL). This application contains spring and hibernate frameworks. In this application if databases goes down or some network issue comes I have to handle differently(While trying to access database). Currently if the above scenario comes I am getting SQLException as the least cause. How do I identify that SQLException thrown is because of network issue or some query/data issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想您只需从异常消息中提取此信息即可。
例如,对于 Oracle,会抛出带有以下消息的 SQLException 异常:
I guess you'll just have to extract this information from the exception message.
For example in case of Oracle a SQLException exception with following message is thrown:
检查驱动程序的单独文档,并查看由于您描述的错误而引发的错误代码
更新
每个数据库供应商都提供了自己的错误代码和状态,如果您检查它们,您应该是安全的。
Check the drivers' individual documentation and see what error codes are thrown as a result of the errors you described
UPDATE
each database vendor provides their own error codes and states, if you check them you should be safe.