FirebirdSQL logo

Une exception utilisateur est un objet de base de données qui décrit un message d’erreur. Une exception peut être appelée et traitée dans le code PSQL. (см. EXCEPTION, WHEN …​ DO).

Cette section décrit les opérateurs permettant de créer, modifier et supprimer les exceptions.

CREATE EXCEPTION

affectation

Créez une exception personnalisée à utiliser dans les modules PSQL.

Disponible en

DSQL, ESQL

Syntaxe
CREATE EXCEPTION exception_name '<message>'

<message> ::= <message-part> [<message-part> ...]

<message-part> ::=
    <text>
  | @<slot>

<slot> ::= one of 1..9
Table 1. Paramètres de l’opérateur CREATE EXCEPTION
Paramètre Description

exception_name

Nom de l’exception. Longueur maximale de 63 caractères.

message

Message d’erreur. La longueur maximale est limitée à 1021 caractères.

text

Texte.

slot

Le numéro d’emplacement du paramètre. La numérotation commence à 1. Le numéro d’emplacement maximum est 9.

L’instruction CREATE EXCEPTION crée une nouvelle exception personnalisée à utiliser dans les modules PSQL. L’exception ne doit pas exister dans la base de données, sinon une erreur appropriée sera lancée.

Le nom de l’exception est un identifiant standard. Dans le dialecte 3, il peut être entouré de guillemets doubles, ce qui le rend sensible à la casse. Voir Identifiers pour plus de détails.

Le message d’exception est enregistré dans le jeu de caractères NONE, c’est-à-dire n’importe quel caractère des jeux de caractères à un octet. Le texte du message peut être remplacé dans le code PSQL au moment où l’exception est levée.

Le message d’erreur peut contenir des emplacements de paramètres qui sont remplis lorsque l’exception est levée.

Warning
Attention!

Si un numéro d’emplacement de paramètre supérieur à 9 est rencontré dans le texte du message, le deuxième caractère et les suivants seront considérés comme des littéraux. Par exemple, @10 sera considéré comme @1 suivi du littéral 0.

Note

Les exceptions des utilisateurs sont stockées dans la table RDB$EXCEPTION.

Qui peut créer une exception ?

L’instruction CREATE EXCEPTION peut être exécutée :

L’utilisateur qui a créé l’exception devient le propriétaire de l’exception.

Exemples

Example 1. Créer une exception pour un utilisateur
CREATE EXCEPTION E_LARGE_VALUE 'La valeur dépasse la valeur maximale autorisée';
Example 2. Création d’une exception paramétrée
CREATE EXCEPTION E_INVALID_VALUE 'Valeur invalide de @1 pour le champ @2';

ALTER EXCEPTION

affectation

Modifier le texte du message d’exception de l’utilisateur.

Disponible en

DSQL, ESQL

Syntaxe
ALTER EXCEPTION exception_name '<message>'

Voir la syntaxe pour plus de détails CREATE EXCEPTION

L’instruction `ALTER EXCEPTION' modifie le texte du message d’exception de l’utilisateur.

Qui peut modifier une exception ?

L’instruction `ALTER EXCEPTION' peut être exécutée :

  • Administrateurs

  • Le propriétaire de l’exception ;

  • Utilisateurs avec le privilège `ALTER ANY EXCEPTION'.

Exemples

Example 1. Modification du texte d’un message d’exception de l’utilisateur
ALTER EXCEPTION E_LARGE_VALUE 'La valeur dépasse la valeur maximale autorisée';

CREATE OR ALTER EXCEPTION

affectation

Créez une nouvelle exception ou modifiez une exception existante.

Disponible en

DSQL

Syntaxe
CREATE OR ALTER EXCEPTION exception_name '<message>'

Voir la syntaxe pour plus de détails CREATE EXCEPTION

Si une exception n’existe pas, elle sera créée. Une exception déjà existante sera modifiée, tandis que les dépendances d’exception existantes seront conservées.

Exemples

Example 1. Création ou modification d’une exception utilisateur
CREATE OR ALTER EXCEPTION E_LARGE_VALUE
'La valeur dépasse la valeur maximale autorisée';

DROP EXCEPTION

affectation

Suppression d’une exception d’utilisateur.

Disponible en

DSQL, ESQL

Syntaxe
DROP EXCEPTION exception_name
Table 1. Paramètres de l’opérateur DROP EXCEPTION
Paramètre Description

exception_name

Le nom de l’exception.

L’instruction DROP EXCEPTION supprime une exception personnalisée. S’il existe des dépendances pour une exception existante, la suppression n’aura pas lieu.

Qui peut supprimer une exception ?

L’instruction DROP EXCEPTION peut être exécutée :

  • Administrateurs

  • Le propriétaire de l’exception ;

  • Utilisateurs avec le privilège `DROP ANY EXCEPTION'.

Exemples

Example 1. Suppression d’une exception utilisateur
DROP EXCEPTION E_LARGE_VALUE;

RECREATE EXCEPTION

affectation

Créer ou recréer une exception utilisateur.

Disponible en

DSQL

Syntaxe
RECREATE EXCEPTION exception_name '<message>'

Voir la syntaxe pour plus de détails CREATE EXCEPTION

L’instruction RECREATE EXCEPTION crée ou recrée une exception personnalisée. Si une exception portant ce nom existe déjà, l’instruction RECREATE EXCEPTION tentera de la supprimer et de créer une nouvelle exception. S’il existe des dépendances pour une exception existante, l’instruction RECREATE EXCEPTION ne sera pas exécutée.

Exemples

Example 1. Créer ou recréer une exception utilisateur
RECREATE EXCEPTION E_LARGE_VALUE 'La valeur dépasse la valeur maximale autorisée';