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é. Quand les messages d'une priorité particulière
sont indiqués par le client, écrit dans les traces du serveur ou à la
fois contrôlé par les variables de configuration log_min_messages
et client_min_messages.
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
remplacera le % dans la chaîne.
RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
Cet exemple interrompra la transaction avec le message d'erreur
donné.
RAISE EXCEPTION 'Nonexistent ID --> %', 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.