Get the Details of a SQLException : SQLException Warning « Database « Java Tutorial

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
  public static void main(String[] args) throws Exception {
    try {
      Connection conn = getConnection();
      Statement st = conn.createStatement();

      st.executeUpdate("create table survey (id int,myDate DATE );");
      String INSERT_RECORD = "insert into survey(id, myDate) values(?, ?)";

      PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);
      pstmt.setString(1, "1");
      java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
      pstmt.setDate(2, sqlDate);


      ResultSet rs = st.executeQuery("SELECT * FROM survey");

    } catch (SQLException e) {
      while (e != null) {
        String errorMessage = e.getMessage();
        System.err.println("sql error message:" + errorMessage);

        // This vendor-independent string contains a code.
        String sqlState = e.getSQLState();
        System.err.println("sql state:" + sqlState);

        int errorCode = e.getErrorCode();
        System.err.println("error code:" + errorCode);
        // String driverName = conn.getMetaData().getDriverName();
        // System.err.println("driver name:"+driverName);
        // processDetailError(drivername, errorCode);
        e = e.getNextException();


  private static Connection getConnection() throws Exception {
    String url = "jdbc:hsqldb:mem:data/tutorial";

    return DriverManager.getConnection(url, "sa", "");

20.27.SQLException Warning
20.27.1.Exceptions in JDBC Methods
20.27.3.Extracting Information from SQLException
20.27.4.Get the Details of a SQLException
20.27.5.Chaining SQLExceptions
20.27.6.Determine Whether a SQL Warning Has Occurred
20.27.7.Check for a warning using a Connection object
20.27.8.Checking for a Warning Using a Statement Object
20.27.9.Checking for a Warning Using a ResultSet Object
20.27.10.Using SQLWarning
20.27.11.Check for a SQL Warning Using PreparedStatement
20.27.12.Print the stack trace for a SQLException to STDERR.
20.27.13.Print warnings on a Connection to STDERR.
20.27.14.Print warnings on a Connection to a specified PrintWriter.
20.27.15.Use JDBC Chained Exception