Vous êtes sur la page 1sur 16

2

Les Exceptions

BASES DE DONNÉES AVANCÉES


PRÉSENTATION
 Un exception est une erreur ou un avertissement, prédéfinie par Oracle ou défini par le
programmeur.

 4 catégories d'exceptions :
 nommées prédéfinies par Oracle : Oracle les déclenche, l'utilisateur peut les récupérer (WHEN
nomException)

 nommées définies par l'utilisateur : l'utilisateur les déclare, les lève dans un programme PL/SQL,
et peut les récupérer (WHEN nom...)

 anonymes prédéfinies par Oracle : Oracle les déclenche sans les nommer, l'utilisateur peut quand
même les récupérer (WHEN OTHERS ...)

 anonymes définies par l'utilisateur : idem, mais c'est l'utilisateur qui les lève avec RAISE
APPLICATION ERROR
RAPPEL DE LA STRUCTURE D’UN BLOC
SAISIR UNE EXCEPTION
 Une exception ne provoque pas nécessairement l’arrêt du
programme si elle est saisie par un bloc (dans la partie «
EXCEPTION »)

 Une exception non saisie remonte dans la procédure appelante


(où elle peut être saisie)
EXCEPTIONS PRÉDÉFINIES

Parmis les exceptions prédéfinies les plus utilisées:

 NO_DATA_FOUND

 TOO_MANY_ROWS

 VALUE_ERROR (erreur arithmétique)

 ZERO_DIVIDE
TRAITEMENT DES EXCEPTIONS
TRAITEMENT DES EXCEPTIONS
Exemple: utilisation de SQLCODE et SQLERRM
EXCEPTIONS UTILISATEUR

 Elles doivent être déclarées avec le type EXCEPTION.

 On les lève avec l’instruction RAISE.


EXEMPLE 1
EXCEPTIONS PRÉDÉFINIES ANONYMES
(1)
ATTRIBUTION D’UN SQLCODE
PROPAGATION D'UNE EXCEPTION
 Où va une exception?:

 Une exception est déclenchée :


 PL/SQL cherche un gestionnaire dans la partie Exception du bloc
courant (WHEN adéquat).

 Si pas de gestionnaire : on cherche dans le bloc englobant...

 Si aucun : PL/SQL envoie un message d'exception non gérée à


l'application appelante
EXEMPLE 2
EXCEPTIONS PRÉDÉFINIES
EXCEPTIONS PRÉDÉFINIES

Vous aimerez peut-être aussi