2013-08-21 4 views
1

일반적으로 ErrorCode & SQLState 조합을 특정 예외에 대한 고유 ID로 간주하면 코드 논리를 기반으로하는 것이 안전할까요?ErrorCode & SQLState 조합을 일부 예외의 고유 ID로 간주 할 수 있습니까?

더 구체적으로 말하자면, DataDirect는 그런 것을 따릅니 까?

[SQLServer JDBC Driver]Changing the default holdability is not supported...

다음과 같은 :

System.out.println(">e.getErrorCode: " + e.getErrorCode()); 
System.out.println(">e.getSQLState: " + e.getSQLState()); 

하는 returing된다

내가 필요로하는 것입니다 정확한 경우에 또한

, 내 코드 생성은 다음과 같은 예외입니다
>e.getErrorCode: 0 
>e.getSQLStat: hy000 

그럼 안전할까요? 만약 내가 0 && hy00을 확인한다면 나는 앞서 언급 한 예외만을 필터링하고 있다고 가정한다.

공식적인 DataDirect 문서에 이러한 사실을 언급하는 것이 도움이 될 경우 매우 유용 할 것입니다.

답변

1

아니요. SQLState HY000은 일반적인 CLI SQL 오류 (SQL CLI 표준에 정의 된대로)이며 오류 코드 0은 '특정 오류 코드가 설정되지 않았습니다'를 의미합니다. 일반적으로 드라이버는 더 구체적인 것이 없거나 개발자가 다른 것을 지정하는 것을 괴롭히지 않은 경우 SQLState로 HY000을 사용합니다.

일반적으로 단일 SQLState는 매우 다양한 범위의 오류를 처리 할 수 ​​있으며 하나의 오류 또는 오류 그룹에 대해 단일 오류 코드 (0 이외)를 사용할지 여부는 데이터베이스와 컨텍스트에 따라 달라질 수 있습니다 오류의.