0% ont trouvé ce document utile (0 vote)
100 vues13 pages

Gestion des Exceptions PL/SQL

Transféré par

Mouhamed Amine Mejri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
100 vues13 pages

Gestion des Exceptions PL/SQL

Transféré par

Mouhamed Amine Mejri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

73

Objectifs du cours
1. Les Exceptions prédéfinies

2. Les Exceptions définies

3. Utilisation des exceptions dans des programmes PL/SQL

(Reconnaître les exceptions non gérées, répertorier et utiliser les

différents types de gestionnaire d'exceptions PL/SQL, intercepter les

erreurs non prédéfinies, personnaliser les messages d'exception PL/SQL


74

Définition des exceptions


La section EXCEPTION permet d'affecter un traitement aux erreurs survenues
lors de l'exécution d'un bloc PL/SQL. On distingue 2 types d'erreurs:
▪ erreurs internes du serveur Oracle
▪ erreurs programme utilisateur

▪ Exception prédéfinie Exception déclenchée


du serveur Oracle implicitement
▪ Exception non prédéfinie
du serveur Oracle

▪ Exception définie Exception déclenchée


par l'utilisateur explicitement
75

Traitement des exceptions


L'exception Interrompre
est-elle interceptée ? brutalement
Non l'exécution

Oui
Exception Exécuter les Propager
générée instructions
l'exception
de la section
EXCEPTION

Interrompre
correctement
l'exécution
76

Exception prédéfinie oracle.


Exemples d’exception prédéfinies internes du serveur oracle :
77

Exemple1 . Exception prédéfinie Oracle (1/2)

Var a number;
BEGIN
Select department_name into :a from departments;
END;
/
78

Exemple1 . Exception prédéfinie Oracle (2/2)

correction
BEGIN
Select department_name into :a from departments;

Exception
When too_many_rows then dbms_output.put_line(‘plusieurs
lignes’);
END;
/
79

Exemple2 . Exception prédéfinie Oracle (1/2)

DECLARE
b departments.department_name%type;
A number :=1;
BEGIN
Select department_name into b from departments where
department_id=a;
Dbms_output.put_line(b);
END;
/
80

Exemple2 . Exception prédéfinie Oracle (2/2)

correction
DECLARE
b departments.department_name%type; A number :=1;
BEGIN
Select department_name into b from departments where
department_id=a;
Dbms_output.put_line(b);
Exception
When no_data_found then dbms_output.put_line(‘pas de donées’);
END;
/
81

Exception définie oracle. Syntaxe

DECLARE
nom_erreur EXCEPTION ;
PRAGMA EXCEPTION_INIT(nom_erreur, sql_code_erreur);
BEGIN
EXCEPTION
WHEN nom_erreur THEN (traitement) ;
[WHEN OTHERS THEN (traitement) ;] ;
END;
/
82

Exception définie oracle. Exemple

SQL> create table org_level(


2 company_id number(8) not null,
3 org_level varchAR2(1) not null
4 );

SQL> DECLARE
2 test EXCEPTION;
3 PRAGMA EXCEPTION_INIT(test, +100);
4 BEGIN
5 select company_id into :a from or_level where org_level=‘test’;
6 EXCEPTION WHEN test THEN
7 dbms_output.put_line('Organization Level invalide ');
8 END;
9 /
83

Exception définie par l’utilisateur. Syntaxe

DECLARE
<déclarations>
1 Déclarer l’exception
nom_erreur EXCEPTION ;
BEGIN
<instructions>
IF (anomalie) THEN
RAISE nom_erreur ; 2 Évoquer l’exception
<instructions>
EXCEPTION
WHEN nom_erreur THEN (traitement) ;
3 Définir l’exception
END; /

Vous aimerez peut-être aussi