지난 며칠 동안 일부 사용자는 java.sql.sqlexception 오류 코드 목록에서 호출된 오류를 발견했습니다. 이 어려운 작업은 여러 가지 이유로 발생할 수 있습니다. 지금부터 살펴보겠습니다.
승인됨: Fortect
<울>
SQLException 소개
JDBC가 데이터 소스와 상호 작용하는 동안 강력한 오류가 발생하면 예외
가 아니라 상황으로 SQLException
을 던질 가능성이 높습니다. (이 컨텍스트에서 데이터 구매는 연결
요소가 연결될 데이터베이스입니다.) SQLException
인스턴스는 일반적으로 원인을 결정하는 데 도움이 될 수 있는 다음 전략을 포함합니다. 오류에 첨부됨:
<울><리>
오류에 대한 설명입니다. SQLException.getMessage
도구를 호출하여 이 다양성을 포함하는 String
객체를 가져옵니다.
<리>
SQLState 코드. 이러한 코드와 해당 설명은 ISO/ANSI 및 이후 Open Group(X/Open)에 의해 표준화되었지만 데이터베이스 작성자가 스스로를 명확하게 정의하는 데 몇 가지 제한이 남아 있습니다. 이 문자열
개체는 5개의 영숫자로 구성됩니다. SQLException.getSQLState
작업 과정을 호출하여 특정 모드를 가져옵니다.
<리>
법률 오류. 이것은 SQLException
인스턴스가 수집되도록 한 정수 값을 식별하는 데 유용한 오류입니다. 의미와 의미로 번역되는 것은 구현에 따라 달라지며 특히 근본적인 원인 거래자가 반환한 유효한 오류 코드일 수 있습니다. 특정 스키마 SQLException.getErrorCode
를 호출하여 오류를 가져옵니다.
<리>
이유. sqlexception
인스턴스는 자체 sqlexception
모델이 생성되도록 하는 인과 관계 또는 더 많은 throwable
항목으로 구성된 인과 관계를 가질 수 있습니다. 목요일이러한 이유를 결합하려면 null
에 대해 중요한 일치 항목이 발견될 때까지 내 SQLException.getCause
메서드에 재귀적으로 연결하십시오.
<리>
복합 예외에 대한 링크. 개별 오류 이상이 발생하면 실제로 이 줄이 참조하는 예외입니다. throw된 예외와 throw된 SQLException.getNextException
메서드에 의해 발생하는 예외를 가져옵니다.
예외 검색
읽기 메소드 JDBTCutorialUtilities, .printSQLException
은 SQLState, 오류 코드, 오류 설명 및 이유(있는 경우)를 반환합니다. sqlexception
에 포함되어 있으며 As에서 발견되며 다른 예외는 일반적으로 다음으로 연결됩니다.
예를 들어, 특정 과정을 Java DB로 CoffeesTable.dropTable
호출하여 DBMS로 하면 COFFEES
테이블이 제공하지 않으며 각 항목을 제거합니다. JDBTCutorialUtilities.ignoreSQLException
출력은 일반적으로 다음과 같습니다.
하드 카피 SQLException
정보 대신, 먼저 SQLState
를 요청한 다음 필요에 따라 이 특정 SQLException
중 일부를 처리할 수 있습니다. 예를 들어, SQLState
가 42Y55
( 사람이 Java DB를 DBMS로 사용하고 있음). JDBTCutorialUtilities.printSQLException
무시 SQLException
:
경고 수신
SQLWarning
개체는 데이터베이스 경고에 도움이 되는 액세스를 제어하는 SQLException
의 특정 하위 클래스 중 하나입니다. 경고는 예외와 달리 고용 실행을 중단하지 않습니다. 단순히 무언가가 계획되지 않았다는 사실을 사용자에게 경고합니다. 예를 들어, tell은 귀하가 취소하는 데 사용한 권한이 취소되지 않았다는 것을 알고 있다고 말할 수 있습니다.
A는 Connection
객체를 통해 전달될 수 있으며, 하나의 Statement
객체( PreparedStatement
및 CallableStatement
포함)가 옵니다. 개체) 또는 ResultSet
개체입니다. 연결된 각 클래스에는 구매자가 호출 아이디어에 대한 기본 경고를 보기 위해 호출해야 하는 getWarnings
도구가 있습니다. getWarnings
가 경고를 반환하면 SQLWarning
이 getNextWarning
메서드를 호출하여 대체 경고를 받을 수 있도록 문제를 해결할 수 있습니다. 기능 명령을 실행하면 이전 기능 명령에서 경고가 자동으로 제거되어 표시되지 않을 수 있습니다. 그러나 이것은 고객이 다른 청구를 실행하기 전에 엄청난 소송에 대해 경고를 받아야 함을 의미합니다.
JDBTCutorialUtilities
내의 다음 메서드는 문
에 대해 보고된 경고 정보를 채우는 방법을 보여줍니다. < 코드> ResultSet 개체:
가장 일반적인 경고는 완전한 DataTruncation
경고이며, SQLWarning
이 있는 하위 클래스입니다. 모든 DataTruncation
장애에는 SQLState 01004
가 있어 현재 데이터를 수신하거나 쓰는 데 문제가 있음을 나타냅니다. DataTruncation
메서드를 사용하면 대부분의 사람들이 매개변수 데이터가 잘린 순서나 명령을 알 수 있습니다. 모든 잘림이 읽기 또는 쓰기 수행으로 표시되는 경우 어떤 메서드를 순서대로 사용해야 하는지 알 수 있습니다 실제로 많은 바이트를 전송하고 실제로 전송된 바이트 수.
분류된 SQL 예외
JDBC 드라이버가 SQLException
하위 클래스를 생성할 수 있습니다. 이는 전문가가 보완하지 않는다고 생각하는 일반 SQLState 또는 일반적인 오류 상태에 해당합니다. SQLState 특정 클래스 값으로. 이것은 더 이식 가능한 오류 처리 코드를 허용합니다. 이러한 예외는 일반적으로 향후 세미나 중 하나의 하위 클래스일 수 있습니다.
<울>
SQLNonTransientException
SQLTransientException
SQLRecoverableException
승인됨: Fortect
Fortect은 세계에서 가장 인기 있고 효과적인 PC 수리 도구입니다. 수백만 명의 사람들이 시스템을 빠르고 원활하며 오류 없이 실행하도록 신뢰합니다. 간단한 사용자 인터페이스와 강력한 검색 엔진을 갖춘 Fortect은 시스템 불안정 및 보안 문제부터 메모리 관리 및 성능 병목 현상에 이르기까지 광범위한 Windows 문제를 빠르게 찾아 수정합니다.
이러한 하위 클래스에 대한 자세한 정보는 java.sql
파일의 최신 Javadoc 또는 대부분의 JDBC 소유자 문서를 참조하십시오.
기타 SQLException 하위 클래스
<울>
BatchUpdateException
은 일괄 업데이트 중에 치명적인 오류가 발생하면 매우 많이 발생합니다. SQLException
프로세스에 의해 판매되는 정보 외에도, BatchUpdateException
은 한 사람의 오류 이전에 실행된 명령문이 고려되는 경우 업데이트 번호를 제공합니다. SQLClientInfoException
은 하나 이상의 클라이언트 정보 호텔을 연결에 대해 특별히 설정할 수 없는 경우 매우 많이 발생합니다. SQLException
에서 제공하는 정보 외에도 SQLClientInfoException
에는 불행히도 아직 정의되지 않은 클라이언트 정보 속성을 포함하는 목록이 포함되어 있습니다.