1

最近、アプリケーションをデータベースのユーザー名とパスワードを構成ファイルに保存することから変更しました(gaspパスワードは構成ファイルにプレーンテキストで保存されます)。

アプリケーションは、続行する前にユーザーにユーザー名とパスワードの入力を求めるようになりました。

新しいバージョンのアプリケーションは、に問い合わせてSQLException、例外の原因(無効なユーザー名またはパスワード、データベースサーバーに到達できない、接続タイムアウトなど)を特定し、次に何をするかを決定できるようにする必要があります(ユーザーに修正を求めるユーザー名とパスワード、ネットワークの問題が分類されたら後で再試行するようにユーザーに指示し、目に見えない形で再接続するなど)。

これら(およびその他の)原因に関連するerrorCodes(SQLException.getErrorCode())を見つけようとすることはSQLExceptionほぼ不可能であり、推測を余儀なくされました(これは時には危険な場合があります)。

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のerrorCodesのほとんどは0のようです。

つまり、//のSQLWarningsを確認する必要ConnectionがありStatementますResultSet

connection.getWarnings();

または、スローされた例外にチェーンされた例外

sqlException.getNextException();

SQLExceptionここで注意が必要なのは、連鎖例外が他の例外IOExceptionである可能性があることです(他の例外に遭遇したことを思い出せません)。

于 2008-09-26T12:24:46.540 に答える