오류 처리

Microsoft SQL Server JDBC 드라이버를 사용하면 모든 데이터베이스 오류 조건이 SQLServerException 클래스를 통해 Java 응용 프로그램에 예외로 반환됩니다. 다음 SQLServerException 클래스의 메서드는 java.sql.SQLException 및 java.lang.Throwable에서 상속되며, 발생한 SQL Server 오류에 대한 세부 정보를 반환하는 데 사용합니다.

  • getSQLState는 표준 X/Open 또는 SQL99 예외의 상태 코드를 반환합니다.

  • getErrorCode는 특정 데이터베이스 오류 번호를 반환합니다.

  • getMessage는 예외의 전체 텍스트를 반환합니다. 오류 메시지 텍스트에는 문제에 대한 설명이 나와 있으며, 표시될 때 오류 메시지에 삽입된 개체 이름 같은 정보에 대한 자리 표시자가 자주 포함되어 있습니다.

  • getNextException은 다음 SQLServerException 개체를 반환하거나 반환할 예외 개체가 없는 경우 null을 반환합니다.

다음 예제에서는 SQL Server AdventureWorks 샘플 데이터베이스에 대해 열린 연결을 함수로 전달하고, FROM 절이 없는 잘못된 형식의 SQL 문을 생성합니다. 그런 다음 이 문을 실행하고 SQL 예외를 처리합니다.

public static void executeSQLException(Connection con) {
   try {
      String SQL = "SELECT TOP 10 * Person.Contact";
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery(SQL);

      while (rs.next()) {
         System.out.println(rs.getString(4) + " " + rs.getString(6));
      }
      stmt.close();
   }
   catch (SQLException se) {
      do {
         System.out.println("SQL STATE: " + se.getSQLState());
         System.out.println("ERROR CODE: " + se.getErrorCode());
         System.out.println("MESSAGE: " + se.getMessage());
         System.out.println();
         se = se.getNextException();
      } while (se != null);
   }
}

참고

관련 자료

JDBC 드라이버 관련 문제 진단