37.9. Erreurs et messages
Utilisez l'instruction RAISE pour rapporter des
messages et lever des erreurs.
RAISE niveau 'format' [, expression [, ...]];
Les niveaux possibles sont DEBUG,
LOG, INFO,
NOTICE, WARNING et EXCEPTION.
EXCEPTION lève une erreur (ce qui
annule habituellement la transaction en cours). Les autres
niveaux ne font que générer des messages aux différents niveaux
de priorité. Les variables de configuration log_min_messages
et client_min_messages
contrôlent l'envoi de messages dans les traces, au client ou
aux deux. Voir le Chapitre 17,
Configuration du serveur pour plus d'informations.
Au sein de la chaîne de formatage, %
est remplacé par la représentation de la chaîne argument
optionnelle suivante. Écrivez %% pour
signifier un caractère %. Les
arguments peuvent être de simples variables ou des expressions
et le format doit être une simple chaîne de caractères.
Dans cet exemple, la valeur de v_job_id remplace le %
dans la chaîne.
RAISE NOTICE 'Appel de cs_creer_job(%)', v_job_id;
Cet exemple interromp la transaction avec le message d'erreur
donné.
RAISE EXCEPTION 'ID inexistant --> %', id_utilisateur;
RAISE EXCEPTION
génère toujours le même code SQLSTATE,
P0001, quelque soit le message avec
lequel il a été invoqué. Il est possible d'intercepter cette
exception avec EXCEPTION ... WHEN
RAISE_EXCEPTION THEN ... mais l'origine du RAISE déclencheur est
inconnue.