我最近更改了一个应用程序,将数据库用户名和密码存储在配置文件中(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();


这里棘手的事情是,链接的异常可能是SQLExceptionIOException,还有可能是其他异常(不记得遇到其他异常)。

关于java - JConnect错误代码列表是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/133112/

10-12 06:09