La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Heg Haute école de gestion de Neuchâtel Gestionnaire d'exception Procédures stockées PL/SQL.

Présentations similaires


Présentation au sujet: "Heg Haute école de gestion de Neuchâtel Gestionnaire d'exception Procédures stockées PL/SQL."— Transcription de la présentation:

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


Télécharger ppt "Heg Haute école de gestion de Neuchâtel Gestionnaire d'exception Procédures stockées PL/SQL."

Présentations similaires


Annonces Google