我最近更改了一个应用程序,将数据库用户名和密码存储在配置文件中(gasp密码以纯文本格式存储在配置文件中)。
该应用程序现在要求用户输入用户名和密码,然后才能继续。
现在,新版本的应用程序必须查询SQLException
以确定引起异常的原因(无效的用户名或密码,无法访问数据库服务器,连接超时等)。
这样,它就可以决定下一步要做什么(提示用户更正用户名和密码,告诉用户在解决网络问题后再试一次,不可见地重新连接等)。
试图查找与这些(和其他)原因相关的SQLException
errorCodes(SQLException.getErrorCode())几乎是不可能的,我们不得不猜测(有时可能很危险)。
Java API文档说这是特定于供应商的。
是否有人可以通过Sybase JConnect JDBC drivers
设置错误代码?JRE 1.5
jConnect for JDBC 2.0 (spec version 5.2)
Sybase IQ 12.7
最佳答案
似乎捕获的SQLException中的大多数errorCodes为0。
这意味着您必须检查Connection
/ Statement
/ ResultSet
的SQLWarnings
connection.getWarnings();
或链接到抛出的异常的异常
sqlException.getNextException();
这里棘手的事情是,链接的异常可能是
SQLException
或IOException
,还有可能是其他异常(不记得遇到其他异常)。关于java - JConnect错误代码列表是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/133112/