La gestion d'erreur est en grande partie intégrée dans les fonctions WinDev.
Les variables de gestion (hErreurBlocage, hErreurIntégrité, hErreurDoublon)sont automatiquement mises à jour.
Note : pour une erreur de doublon, le nom de la rubrique se récupère par HErreurInfo(hErrRubrique)
WRKACTJOB
En consultant les propriétés du JOB vous pouvez également obtenir un certains nombres d'informations utiles :
- historique des messages,
- fichiers ouverts,
- verrouillages...
Traces
Les fichiers de trace conservent le détail des opérations effectuées, côté PC ou AS et peuvent être très utiles pour identifier un problème.
Fonctions Easycom
La fonction ASRésultatRTV a une variable spécifique "RC", si la syntaxe de la commande est correcte mais que l'exécution échoue cette variable contiendra le code erreur CPF, sinon elle vaut "0". Il faut donc tester le retour de la fonction (syntaxe et passage correcte) et la valeur de la variable RC.
Les autres fonctions Easycom retournent un booléen, Vrai en cas de succès, Faux en cas d'échec.
A l'exception de ASPropriete, la connexion doit être ouverte avant l'appel de la fonction.
Erreurs de type CPF
Voir les fonctions ASErreurAide et ASErreurDonnee qui remontent le détail d'une erreur "signal", catégorie 2.
ErreurInfo et HErreurInfo
hErreur retourne le numéro de la dernière erreur WinDev rencontrée.
Le code 73001 indique une erreur de l'accès natif. Il faut alors utiliser ErreurInfo ou hErreurInfo pour obtenir le détail de l'erreur.
Les fonctions ErreurInfo et HErreurInfo doivent être appelées immédiatement après la fonction à contrôler.
ErreurInfo(hErrNatif)retourne le numéro de l'erreur.
Pour les fonctions Easycom (ASExec, ASLanceRPC....), la fonction ErreurInfo()retourne une chaîne séparée par des CRLF (sauts de ligne) composée de :
· texte complet du message d'erreur,
· texte court du message d'erreur,
· catégorie,
· code principal selon la catégorie,
· code secondaire.
Pour les opérations sur les fichiers ou les requêtes SQL, utiliser HErreurInfo(hErrMessageNatif) qui retourne une chaîne séparée par des TAB (tabulations) composée de :
· catégorie,
· code principal selon la catégorie,
· texte court du message d'erreur (code CPF ou SQLSTATE)
· texte long du message d'erreur.
Erreurs fatales
L'appel d'une fonction Easycom (AsExec...) renvoie une erreur fatale si la connexion n'est pas ouverte
Il faut donc gérer les exceptions.
Exemple
// on provoque une erreur
ASExec("ADDLIBLE EASYCOM")
ASExec("ADDLIBLE EASYCOM ")
ErreurInfo(errInfo) renvoie 'CPF2103<RC>2<RC>1<RC>11'
ErreurInfo(errMessage) renvoie 'La bibliothèque Easycom existe déjà dans la liste des bibliothèques.<RC>CPF2103<RC>2<RC>1<RC>11'
ErreurInfo(errResumé) renvoie 'La bibliothèque Easycom existe déjà dans la liste des bibliothèques'.
La première ligne contient le code AS/400 'Texte'. Nous obtiendrons par exemple : 'CPF2103', si la catégorie est égal à 2.
La deuxième ligne contient la catégorie d'erreur sous forme numérique.
La ligne 3 contient le code 'Natif' Easycom (voir codes erreur Easycom)
La ligne 4 contient le code AS/400 numérique s'il existe.
Vous pouvez obtenir le message clair (pour affichage par exemple) sans les codes en demandant ErreurInfo(errRésumé).