1

我最近更改了一个应用程序,将数据库用户名和密码存储在配置文件中(gasp密码以纯文本形式存储在配置文件中)。

应用程序现在要求用户输入她的用户名和密码,然后才能继续。

新版本的应用程序现在必须询问SQLException导致异常的原因(无效的用户名或密码、无法访问数据库服务器、连接超时等),以便它可以决定下一步做什么(提示用户更正用户名和密码,告诉用户在解决网络问题后重试,重新连接隐形等)。

试图找到SQLException与这些(和其他)原因相关的错误代码(SQLException.getErrorCode())几乎是不可能的,我们不得不猜测(这有时可能很危险)。

Java API 文档说这是特定于供应商的。

有没有人可以设置的错误代码Sybase JConnect JDBC drivers

  • JRE 1.5
  • jConnect for JDBC 2.0 (spec version 5.2)
  • Sybase IQ 12.7
4

1 回答 1

1

似乎捕获的 SQLException 中的大多数 errorCode 都是 0。

这意味着您必须检查Connection//的StatementSQLWarningsResultSet

connection.getWarnings();

或链接到抛出的异常的异常

sqlException.getNextException();

这里的棘手之处在于链接的异常可能是SQLExceptionIOException可能是其他异常(不记得遇到过其他异常)。

于 2008-09-26T12:24:46.540 回答