Java : SQLException (JDBC) - API使用例
SQLException (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
SQLException は、データベースに対する操作で問題があったときに発生する チェック例外 です。
補足
- JDBC のドライバには Apache Derby を使っています。
Apache Derby は、古い JDK に含まれていたこともありましたが、最新の JDK には含まれていません。
final var url = "jdbc:derby:memory:db";
try (final var connection = DriverManager.getConnection(url)) {
System.out.println("Connected!");
} catch (SQLException e) {
System.out.println(e);
}
// 結果
// ↓
//java.sql.SQLException: Database 'memory:db' not found.
final var url = "jdbc:derby:memory:db;create=true";
try (final var connection = DriverManager.getConnection(url)) {
System.out.println("Connected!");
} catch (SQLException e) {
System.out.println(e);
}
// 結果
// ↓
//Connected!
コンストラクタ
SQLException ()
final var e = new SQLException();
System.out.println(e); // java.sql.SQLException
SQLException (String reason)
final var e = new SQLException("Reason!");
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
SQLException (String reason, String SQLState)
final var e = new SQLException("Reason!", "State!");
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getSQLState()); // State!
SQLException (String reason, String SQLState, int vendorCode)
final var e = new SQLException("Reason!", "State!", 123);
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getSQLState()); // State!
System.out.println(e.getErrorCode()); // 123
SQLException (String reason, String sqlState, int vendorCode, Throwable cause)
final var cause = new SQLException("XYZ");
final var e = new SQLException("Reason!", "State!", 123, cause);
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getSQLState()); // State!
System.out.println(e.getErrorCode()); // 123
System.out.println(e.getCause()); // java.sql.SQLException: XYZ
SQLException (String reason, String sqlState, Throwable cause)
final var cause = new SQLException("XYZ");
final var e = new SQLException("Reason!", "State!", cause);
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getSQLState()); // State!
System.out.println(e.getCause()); // java.sql.SQLException: XYZ
SQLException (String reason, Throwable cause)
final var cause = new SQLException("XYZ");
final var e = new SQLException("Reason!", cause);
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getCause()); // java.sql.SQLException: XYZ
SQLException (Throwable cause)
final var cause = new SQLException("XYZ");
final var e = new SQLException(cause);
System.out.println(e); // java.sql.SQLException: java.sql.SQLException: XYZ
System.out.println(e.getCause()); // java.sql.SQLException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ
メソッド
int getErrorCode ()
final var e = new SQLException("Reason!", "State!", 123);
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getSQLState()); // State!
System.out.println(e.getErrorCode()); // 123
SQLException getNextException ()
final var e1 = new SQLException("E1");
System.out.println(e1); // java.sql.SQLException: E1
final var e2 = new SQLException("E2");
System.out.println(e2); // java.sql.SQLException: E2
System.out.println(e1.getNextException()); // null
e1.setNextException(e2);
System.out.println(e1.getNextException()); // java.sql.SQLException: E2
String getSQLState ()
final var e = new SQLException("Reason!", "State!");
System.out.println(e); // java.sql.SQLException: Reason!
System.out.println(e.getMessage()); // Reason!
System.out.println(e.getSQLState()); // State!
Iterator<Throwable> iterator ()
final var e1 = new SQLException("E1");
final var e2 = new SQLException("E2");
final var e3 = new SQLException("E3");
e1.setNextException(e2);
e2.setNextException(e3);
final var it = e1.iterator();
System.out.println("-- iterator --");
while (it.hasNext()) {
final var e = it.next();
System.out.println(e.getMessage());
}
// 結果
// ↓
//-- iterator --
//E1
//E2
//E3
void setNextException (SQLException ex)
final var e1 = new SQLException("E1");
System.out.println(e1); // java.sql.SQLException: E1
final var e2 = new SQLException("E2");
System.out.println(e2); // java.sql.SQLException: E2
System.out.println(e1.getNextException()); // null
e1.setNextException(e2);
System.out.println(e1.getNextException()); // java.sql.SQLException: E2
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。
Iterableで宣言されたメソッド
forEach, spliterator
「Java API 使用例 : Iterable」をご参照ください。
関連記事
- API 使用例