2013-08-21 3 views
1

En général, en considérant ErrorCode & que la combinaison SQLState soit un ID unique pour une exception spécifique, est-ce une méthode sûre de baser votre logique de code?Est-ce que la combinaison ErrorCode & SQLState peut être considérée comme un identifiant unique pour une exception?

Egalement pour être plus précis, DataDirect suit-il une telle chose?

également pour un cas précis qui est ce que je dois, Mon code est génération l'exception suivante:

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

et les éléments suivants:

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

est returing:

>e.getErrorCode: 0 
>e.getSQLStat: hy000 

Ainsi serait-il sûr t o suppose que si je vérifie pour 0 && hy00 alors je filtre seulement l'exception que j'ai mentionnée plus tôt?

Il serait très utile si je peux obtenir une référence à une documentation officielle de DataDirect qui énonce de tels faits.

Répondre

1

Non, vous ne pouvez pas assumer cela. SQLState HY000 est simplement une erreur CLI SQL générique (telle que définie par la norme SQL CLI), et errorcode 0 signifie «aucun code d'erreur spécifique n'a été défini». Généralement, les pilotes utilisent HY000 en tant que SQLState lorsque rien de plus spécifique n'est disponible, ou si le développeur n'a pas pris la peine de spécifier quoi que ce soit d'autre.

Et même en général, un seul SQLState peut couvrir un très large éventail d'erreurs, et si un seul code d'erreur (autre que 0) est utilisé pour une erreur ou un groupe d'erreurs peut dépendre de la base de données et du contexte de l'erreur.

Questions connexes