Gestionnaire d'exception - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Gestionnaire d'exception

Description:

Action globale toutes les exceptions non r solues */ Section ... Elle enregistre l'exception survenue et la renvoie la proc dure appelante. ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 38
Provided by: suni9
Category:

less

Transcript and Presenter's Notes

Title: Gestionnaire d'exception


1
  • Gestionnaire d'exception
  • Procédures stockées PL/SQL

2
Têtes de chapitres
  • 1. Rappel théorique 4
  • 2. Fonctionnement du gestionnaire 8
  • 3. Utilisation du gestionnaire 21
  • 4. Mémorisation des erreurs 24
  • 5. Fonctionnement interne 27
  • 6. Erreurs d'utilisation du gestionnaire 34
  • 7. Distribution et installation 37

3
Table des matières
  • Rappel théorique 4
  • Fonctionnement du gestionnaire 8
  • Principe de base 9
  • Procédure Err_Traite(p,m) 11
  • Création d'une exception 14
  • Illustration du fonctionnement 16
  • Utilisation du gestionnaire 21
  • Services du package ERREURS 22
  • Bonne utilisation du package ERREURS 23
  • Mémorisation 24
  • Fonctionnement interne 27
  • Constantes et variables 28
  • Procédure Err_Traite 29
  • Procédure Err_Envoie 31
  • Erreurs d'utilisation 34
  • Instruction NULL 35
  • Absence de section d'exception 36
  • Distribution et installation 37

4
  • 1. Rappel théorique

5
Rappel
PROCEDURE MaProcedure IS / Déclarations
/ BEGIN END
/ Bloc d'instruction /
Section d'exécution
EXCEPTION WHEN UneException THEN / Action
spécifique à UneException / WHEN OTHERS THEN /
Action globale à toutes les exceptions non
résolues /
Section d'exception
6
Syntaxe
  • exc_MonException Exception
  • RAISE exc_MonException
  • EXCEPTION
  • WHEN exc_MonException THEN
  • WHEN OTHERS THEN

7
RAISE_APPLICATION_ERROR
CLIENT
-20145 Le compte n'est pas suffisamment alimenté
BEGIN RAISE_APPLICATION_ERROR (MonCode,
MonMessage) ... EXCEPTION WHEN ...
THEN ... END
Serveur
8
  • 2. Fonctionnement du gestionnaire ERREURS

9
Principe de base
  • Une exception est une erreur interne du SGBD ou
    de l'application qui provoque impérativement
  • L'annulation de toutes les opérations en cours
  • L'arrêt impératif de tout traitement
  • La remontée du message d'erreur à l'utilisateur
  • L'enregistrement des paramètres de l'environnement

10
Résolution des exceptions
CLIENT
1
7
BEGIN Corps EXCEPTION WHEN OTHERS
THEN Err_Traite(p,m) END
A
2
6
BEGIN Corps EXCEPTION WHEN OTHERS
THEN Err_Traite(p,m) END
B
Serveur
3
5
BEGIN Corps EXCEPTION WHEN OTHERS
THEN Err_Traite(p,m) END
C
4
11
Procédure Err_Traite (P, M)
Début
? Nouvelle occurrence d'erreur
Crée une nouvelle occurrence d'erreur
Oui
Non
Enregistre le nom de la procédure dans laquelle
l'exception est résolue
Mémorise le message associé à l'exception
Propage l'exception
Fin
12
Règle d'appel de Err_Traite
13
Exemple d'appel de Err_Traite
14
Création d'une exception
BEGIN Début du Corps Suite du
corps EXCEPTION WHEN OTHERS THEN Err_Traite(p,m)
END
Err_Envoie(message)
15
Exemple d'appel de Err_Envoie
16
Illustration du fonctionnement
CLIENT
TestErreur1
TestErreur1A
TestErreur01
TestErreur001 / Erreur développeur diviseur lt 0
/ / Erreur interne diviseur 0/
17
Exemple d'erreur interne avec le client SQLPLus
18
Exemple d'erreur du développeur avec le client
SQLPLus
19
Exemple d'erreur du développeur avec un client Web
20
Exemple d'erreur interne avec un client Web
21
  • 3. Utilisation du gestionnaire ERREURS

22
Services du package ERREURS
Err_Traite ( pe_Package IN VARCHAR2,
pe_Module IN VARCHAR2 ) Elle résout
toutes les exceptions du module. Elle enregistre
l'exception survenue et la renvoie à la procédure
appelante. pe_Package Package qui contient la
procédure à protéger pe_Module Nom de la
fonction ou procédure protégée Err_Envoie
( pe_Message IN VARCHAR2 ) Elle crée une
exception qui sera immédiatement résolue dans le
bloc EXCEPTION par la procédure
Err_Traite. pe_Message Message associé à
l'erreur
23
Bonne utilisation du package ERREURS
PROCEDURE MaProcedure IS BEGIN Début du
Corps Suite du corps END
Seulement s' il est nécessaire pour le
développeur de déclencher une erreur
Err_Envoie(message)
EXCEPTION WHEN OTHERS THEN Err_Traite(p,m)
Toujours
24
  • 4. Mémorisation

25
Vue de la journalisation
26
Structure de mémorisation
27
  • 5. Fonctionnement interne

28
Constantes et variables
  • co_ErrTransmise
  • co_ErrApplication
  • vg_NumErreur
  • vg_MessageInitial
  • vg_NumOrdreErreur

29
Procédure Err_Traite
1
2
3
4
30
Chronologie d'appels de Err_Traite
P
2
1
BEGIN Corps EXCEPTION WHEN OTHERS
THEN Err_Traite('P', 'A') END
BEGIN Corps EXCEPTION WHEN OTHERS
THEN Err_Traite('P', 'B') END
B
CLIENT
4
3
vg_NumErreur x vg_NumordreErreur
1 vg_MessgeInitial SQLERRM
... RAISE_APPLICATION_ERROR (co_ErrRetransmise
, vg_MessageInitial)
Chronologie de dépilement et d'appel de la
procédure Err_Traite
vg_NumordreErreur 2 ... RAISE_APPLICATION_ERR
OR (co_ErrRetransmise, vg_MessageInitial)
31
Procédure Err_Envoie
32
Corps de la procédure Err_EnregNvle
33
Corps de la procédure Err_EnregAppel
34
  • 6. Erreurs d'utilisation du gestionnaire
  • ERREURS

35
Instruction Null
36
Absence de section d'exception
37
  • 7. Distribution et installation
Write a Comment
User Comments (0)
About PowerShow.com