데이터베이스에 연결하기 위해 "postgresql-9.3-1102.jdbc3.jar"를 사용하고 있습니다. 한 가지 예외가있을 때 예 : null 값 하나, 예외를 잡으려면 여러 가지 방법을 사용할 수 있습니다.Postgres 예외 및 java
시도 { ............
} 캐치 (PSQLException SERS) { .........
}
또는
시도 {.......
} 캐치 (예외 : SQLException 자체) {.......
}
또는
시도 { .......
} catch (예 ception) { ........
내 목표는 흥미로운 경우에 특정 SQLState를 잡는 것입니다.
예를 들어 한 필드의 유효하지 않은 NULL 값을 catch하려는 경우 Postgress는 "23502"SQLState 값을 반환하지만 오류 코드가 상속되기 때문에 이전의 "catch"중 하나에서이를 수행 할 수 없습니다. 그것을 확인할 수 없습니다. 내가 SQLSTATE 어떤 아이디어
감사를 검사 할 이전 "캐치"에서
는 내가 ".getmessage"을 가질 수 있지만, 이것은 나에게 도움이되지 않습니다.
@ 그레이그 회신 해 주셔서 대단히 감사하지만 내 경우에는 ex.getSQLState() "null"반환합니다 그래서 당신을 말할 깜빡 SQLState를 사용하지 마십시오. 왜 이런 일이 일어나는 지 이해할 수 없습니다. Netbeans를 IDE로 사용하고 디버그에서 se.Cause.Inherit 아래에서 SQLstate = 23502를 볼 수 있도록 도와 주도록 도와주세요. SQLState –
@EliasElias 일괄 처리 오류입니다. 일반적인 오류가 아닌 특정 오류를 언급하는 경우 질문에 스택 추적을 표시해야합니다. 일괄 처리 인 경우 중첩 예외를 얻으려면 ['getNextException'] (http://docs.oracle.com/javase/7/docs/api/java/sql/SQLException.html#getNextException%28%29)해야합니다. . –
@CraigRinger 나는 똑같은 문제에 직면하고 있으며, 배치에 있지 않다. 원인으로'null'을 얻었고'getNextException()'도'null'을 반환합니다. – Pere