Conception Et Réalisation (Oracle) by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Exceptions

Lorsque Oracle rencontre une erreur dans l'exécution d'un programme (overflow, violation de

contraintes d'intégrité...), il sort immédiatement du bloc, en affichant le code et le message

d'erreur.

Si le développeur veut poursuivre l'exécution du programme, il doit rediriger et traiter ces cas

dans la partie EXCEPTION du bloc PL/SQL(sauf les exceptions internes déjà prénommées par

Oracle). Dans cette partie EXCEPTION, il pourra pour chaque cas d'erreur ou d'exception, à

condition de les préciser et de les avoir déclarés (pour les exceptions externes), exécuter un

traitement particulier.

Déclaration

On peut gérer 2 types d'erreurs ou d'exceptions : les exceptions internes (prédéfinies par

Oracle) et les exceptions externes (déclarées par le développeur).

DECLARE

déclarations

nom_exception_externe EXCEPTION;

BEGIN

instructions

IF condition THEN

RAISE nom_exception_externe;

END IF;

instructions

EXCEPTION

WHEN nom_exception_externe THEN instructions ;

WHEN nom_exception_interne THEN instructions ;

WHEN OTHERS THEN instructions

END;

Remarques :

- Les exceptions internes sont redirigées par Oracle sans que l'on doive utiliser la commande

RAISE.

- Le fait de traiter une exception fait sortir du bloc (BEGIN ... END) auquel appartient

l'exception. Le fait de traiter des exceptions dans le bloc le plus externe d'un programme

entraîne donc l'arrêt du programme. Il faudra intégrer une exception dans un bloc imbriqué si

l'on désire continuer le traitement après la gestion de cette exception.

- Dans la partie EXCEPTION, la condition WHEN OTHERS THEN permet de gérer les erreurs

internes qui n'ont pas de nom spécifique ou qu'on ne désire pas traiter en particulier.