next up previous contents
Next: Bases de données Up: Quelques prédicats utiles en Previous: Quelques prédicats utiles en

Traitement des erreurs

Le système de traitement des erreurs proposé est très simple. On considérera deux types d'erreurs. Les erreurs graves (error/[1,2]) mettent fin au programme. Les erreurs moins importantes (warning/[1,2]) se contentent d'afficher un message et le programme peut se poursuivre. Les deux prédicats prennent en paramètre un message d'erreur et éventuellement une liste d'arguments (voir le prédicat writef/2).

Pour simplifier le contrôle des erreurs, on utilisera aussi le prédicat check/[2,3]. Ce prédicat vérifie d'abord qu'une certaine condition est satisfaite. Si ce n'est pas le cas, il génère une erreur.

SWI-Prolog propose un mécanisme d'exceptions. Cela peut être pratique, mais parfois on préférerait que certaines exceptions soient traitées comme des échecs de prédicats (par exemple l'absence d'un prédicat). Le prédicat noex/3 intercepte toutes les exceptions et les traduits en échec.

Exemples :

error(" Fichier introuvable ").
warning(" Mauvaise valeur : %t ",[X]).
chk(N<10, " Entier trop grand : %t ",[X]).
noex((p(X,Y),q(X,Y))).



Christophe Delord
1998-09-02