Bonjour,

J’ai plusieurs soucis avec la gestion des erreurs. Je me connecte à une base de données postgresql (9.1, mais je ne pense pas que ce soit important).

Chaque fois qu’une erreur survient, j’utilise la fonction lastError(), respectivement sur la base de données si c’est à la connexion, ou sur la requête si c’est lors de l’exécution d’une requête. Mon problème est que les erreurs remontées ne sont absolument pas exploitables :
- le code erreur est toujours -1 : pas moyen de différencier, par exemple, une erreur de connexion d’une erreur d’authentification. Les messages étant traduits dans la locale courante, il est hors de question de les utiliser.
- si une requête échoue, là encore le message d’erreur est cryptique et peu exploitable :
ERREUR: erreur de syntaxe ?? la fin de l'entr??e
LIGNE 1 : EXECUTE
QPSQL: Unable to create query"
(et encore un code d’erreur -1, et il y a des erreurs d’encodage, alors que mon driver postgresql, ma base, est bien entièrement en utf8). Type me permet toutefois d’identifier que c’est bien une erreur de requête, mais c’est léger et en plus faux dans certains cas (exemple : coupure du serveur au milieu de l’exécution de la requête)

À côté de quoi suis-je passé qui permette d’avoir une gestion convenable des erreurs ?