が長期間この質問のためのソリューションを検索するが、このための答えを得るために、まだ管理されていない、私はJAVAで作られた私のアプリケーションの検索ボックスを作成しようとしている(例えば、データが存在しません)。データのSQLExceptionをキャッチする方法?
私はこれを行うことができる方法を知って、データベースおよび列が存在しないユーザーに伝えるか、複製データから例外をキャッチしたいですか?
が長期間この質問のためのソリューションを検索するが、このための答えを得るために、まだ管理されていない、私はJAVAで作られた私のアプリケーションの検索ボックスを作成しようとしている(例えば、データが存在しません)。データのSQLExceptionをキャッチする方法?
私はこれを行うことができる方法を知って、データベースおよび列が存在しないユーザーに伝えるか、複製データから例外をキャッチしたいですか?
これは本当に行うには簡単なことではありませんし、溶液がSQL接続(つまりは、MySQL、Oracleの、など)のベンダーに多くを依存します
私はこの使用してパターンを行うための一つの方法を示していますSQLExceptionのエラーメッセージ
private final int INEXISTENT_COLUMN_ERROR = ?
private final int DUPLICATE_DATA_ERROR = ?
private final String INEXISTENT_COLUMN_PATTERN = ?;
private final String DUPLICATE_DATA_PATTERN = ?;
...
try {
...
} catch (SQLException e){
if (e.getErrorCode() == INEXISTENT_COLUMN_ERROR)
System.out.println("User friendly error message caused by column " + this.matchPattern(e.getMessage(), this.INEXISTENT_COLUMN_PATTERN));
if (e.getErrorCode() == DUPLICATE_DATA_ERROR)
System.out.println("User friendly error message caused by duplicate data " + this.matchPattern(e.getMessage(), this.DUPLICATE_DATA_PATTERN));
}
...
private String matchPattern(final String string, final String pattern) {
final Pattern p = Pattern.compile(pattern);
final Matcher m = p.matcher(string);
...
}
あなたの例のためのThxを、それは私が何をしたいのですが、私は知っているかもしれない重複データERRORのリスト...または他のSQLエラー・コードはありますか?私のプライマリデータベースはMSSqlです。 = Dあなたは、ベンダーからのエラーコードのリストについては、Googleで見ている必要があり@spencer – 1myb
、ありがとうございました。あなたもあなたの自己のためにそれらを見つけ出すことができSystem.out.print日食を使用しているため – klonq
Thxを= Dは、C#(Visual Studioの)でデバッグが、仕事では、Javaで行うには弱い失敗(()e.getErrorCode)^^ – 1myb
のマッチング私は、.NET開発者ですが、現在の割り当てを完了するためにJavaを必要と、私は 'しようと{}のように利用できる= D – 1myb
のSmt場合のC#の例外のために行う方法を他の知りたいので、キャッチ{/ *あなたは今までに何もしなかった* /} '? –
うん...しかし、私はSQLからメッセージをキャッチし、ユーザーに戻る?内容が重複しているように、キャッチ例外はユーザーのみにこのメッセージを語っていないだろう=。= – 1myb