Share via


오류 처리

JDBC 드라이버 다운로드

SQL Server용 Microsoft JDBC Driver를 사용하면 모든 데이터베이스 오류 조건이 SQLServerException 클래스를 통해 Java 애플리케이션에 예외로 반환됩니다. 다음 SQLServerException 클래스의 메서드는 java.sql.SQLException 및 java.lang.Throwable에서 상속되며, 발생한 SQL Server 오류에 대한 특정 정보를 반환하는 데 사용됩니다.

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

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

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

  • getSQLServerError()는 SQL Server에서 받은 예외에 대한 자세한 정보가 포함된 SQLServerError 개체를 반환합니다. 서버 오류가 발생하지 않은 경우 이 메서드는 null을 반환합니다.

SQLServerError 클래스의 다음 메서드를 사용하여 서버에서 생성된 오류에 대한 세부 정보를 가져올 수 있습니다.

  • SQLServerError.getErrorMessage()는 서버에서 받은 오류 메시지를 반환합니다.

  • SQLServerError.getErrorNumber()는 오류의 유형을 식별하는 번호를 반환합니다.

  • SQLServerError.getErrorState()는 SQL Server에서 오류, 경고 또는 "데이터를 찾을 수 없음" 메시지를 나타내는 숫자 오류 코드를 반환합니다.

  • SQLServerError.getErrorSeverity()는 받은 오류의 심각도 수준을 반환합니다.

  • SQLServerError.getServerName()은 오류를 생성한 SQL Server의 인스턴스를 실행하는 컴퓨터의 이름을 반환합니다.

  • SQLServerError.getProcedureName()은 오류를 생성한 저장 프로시저 또는 RPC(원격 프로시저 호출)의 이름을 반환합니다.

  • SQLServerError.getLineNumber()는 오류를 생성한 Transact-SQL 명령 일괄 처리 또는 저장 프로시저 내의 줄 번호를 반환합니다.

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

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

        while (rs.next()) {
            System.out.println(rs.getString("FirstName") + " " + rs.getString("LastName"));
        }
    }
    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();
        }
        while (se != null);
    }
}

참고 항목

JDBC 드라이버 관련 문제 진단