Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLéonie Lecoeur Modifié depuis plus de 10 années
1
heg Haute école de gestion de Neuchâtel Gestionnaire d'exception Procédures stockées PL/SQL
2
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-02 Têtes de chapitres 1. Rappel théorique 4 2. Fonctionnement du gestionnaire 8 3. Utilisation du gestionnaire21 4. Mémorisation des erreurs24 5. Fonctionnement interne27 6. Erreurs d'utilisation du gestionnaire34 7. Distribution et installation37
3
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-03 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
heg Haute école de gestion de Neuchâtel 1. Rappel théorique
5
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-05 Rappel PROCEDURE MaProcedure IS /* Déclarations */ BEGIN END; /* Bloc d'instruction */ EXCEPTION WHEN UneException THEN /* Action spécifique à UneException */ WHEN OTHERS THEN /* Action globale à toutes les exceptions non résolues */ Section d'exécution Section d'exception
6
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-06 Syntaxe exc_MonException Exception; RAISE exc_MonException; EXCEPTION WHEN exc_MonException THEN WHEN OTHERS THEN
7
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-07 BEGIN … RAISE_APPLICATION_ERROR (MonCode, MonMessage);... EXCEPTION WHEN... THEN... END; RAISE_APPLICATION_ERROR CLIENT -20145 Le compte n'est pas suffisamment alimenté Serveur
8
heg Haute école de gestion de Neuchâtel 2. Fonctionnement du gestionnaire ERREURS
9
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-09 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
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-010 CLIENT Résolution des exceptions BEGIN Corps EXCEPTION WHEN OTHERS THEN Err_Traite(p,m) END; BEGIN Corps EXCEPTION WHEN OTHERS THEN Err_Traite(p,m) END; BEGIN Corps EXCEPTION WHEN OTHERS THEN Err_Traite(p,m) END; A B C Serveur 1 3 2 5 6 7 4
11
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-011 Procédure Err_Traite (P, M) Crée une nouvelle occurrence d'erreur ? Nouvelle occurrence d'erreur Enregistre le nom de la procédure dans laquelle l'exception est résolue Mémorise le message associé à l'exception Propage l'exception Début Fin Oui Non
12
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-012 Règle d'appel de Err_Traite BEGIN Corps END; A EXCEPTION WHEN OTHERS THEN Err_Traite(p,m) BEGIN Corps END; B EXCEPTION WHEN OTHERS THEN Err_Traite(p,m) BEGIN Corps END; C EXCEPTION WHEN OTHERS THEN Err_Traite(p,m)
13
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-013 Exemple d'appel de Err_Traite
14
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-014 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
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-015 Exemple d'appel de Err_Envoie
16
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-016 Illustration du fonctionnement CLIENT TestErreur1 TestErreur1A TestErreur01 TestErreur001 /* Erreur développeur diviseur < 0 */ /* Erreur interne diviseur = 0*/
17
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-017 Exemple d'erreur interne avec le client SQL*PLus
18
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-018 Exemple d'erreur du développeur avec le client SQL*PLus
19
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-019 Exemple d'erreur du développeur avec un client Web
20
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-020 Exemple d'erreur interne avec un client Web
21
heg Haute école de gestion de Neuchâtel 3. Utilisation du gestionnaire ERREURS
22
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-022 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
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-023 Bonne utilisation du package ERREURS PROCEDURE MaProcedure IS BEGIN Début du Corps Suite du corps END; Err_Envoie(message) EXCEPTION WHEN OTHERS THEN Err_Traite(p,m) Toujours Seulement s' il est nécessaire pour le développeur de déclencher une erreur
24
heg Haute école de gestion de Neuchâtel 4. Mémorisation
25
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-025 Vue de la journalisation
26
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-026 Structure de mémorisation
27
heg Haute école de gestion de Neuchâtel 5. Fonctionnement interne
28
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-028 Constantes et variables co_ErrTransmise co_ErrApplication vg_NumErreur vg_MessageInitial vg_NumOrdreErreur
29
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-029 Procédure Err_Traite 1 2 3 4
30
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-030 Chronologie d'appels de Err_Traite CLIENT BEGIN Corps EXCEPTION WHEN OTHERS THEN Err_Traite('P', 'A') END; BEGIN Corps EXCEPTION WHEN OTHERS THEN Err_Traite('P', 'B') END; B 2 1 4 3 P vg_NumErreur := x vg_NumordreErreur := 1 vg_MessgeInitial := SQLERRM +…... RAISE_APPLICATION_ERROR (co_ErrRetransmise, vg_MessageInitial) vg_NumordreErreur := 2... RAISE_APPLICATION_ERROR (co_ErrRetransmise, vg_MessageInitial) Chronologie de dépilement et d'appel de la procédure Err_Traite
31
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-031 Procédure Err_Envoie
32
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-032 Corps de la procédure Err_EnregNvle
33
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-033 Corps de la procédure Err_EnregAppel
34
heg Haute école de gestion de Neuchâtel 6. Erreurs d'utilisation du gestionnaire ERREURS
35
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-035 Instruction Null
36
heg Haute école de gestion de Neuchâtel 20/12/99ErreursPLSQL V0-036 Absence de section d'exception
37
heg Haute école de gestion de Neuchâtel 7. Distribution et installation
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.