SlideShare une entreprise Scribd logo
1  sur  20
La gestion des
exceptions
La programmation en Java
MIT University
M1 Génie Logiciel
2012- 2013
M. CISSE
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
Plan
1. Les concepts de base
2. Les mots clés try, catch et finally
3. Hiérarchie des classes d’exceptions Java
4. Les exceptions personnalisées
5. Lancer une exception avec throw et
throws
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 2
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions
LES CONCEPTS DE BASE
3
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions en Java ->
Concepts de base
Une exception : une erreur qui se produit lors de
l’exécution d’un programme (division par zéro)
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 4
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• il n’est pas très convivial qu’une erreur conduise à
l’interruption d’un programme en plein milieu d’exécution
• Java propose une façon de les gérer en évitant l’arrêt du
programme (la capture des exceptions) :
1. repérer d’abord les parties du code qui pourraient les provoquer
2. utiliser ensuite les mots clés try, catch et finally pour afficher
un message personnalisé empêchant ainsi l’arrêt "sauvage" du
programme
La gestion des exceptions en Java ->
Concepts de base
5
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions
LES MOTS CLÉS TRY, CATCH ET FINALLY
6
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
Repérons d’abord dans notre code la partie susceptible de lever une
exception
La gestion des exceptions en Java ->
Les mots clés try, catch et finally
risque division par zéro,
exception possible
Un exemple
d’exécution
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 7
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
ensuite entourons la d’un bloc try, catch
La gestion des exceptions en Java ->
Les mots clés try, catch et finally
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
Un exemple
d’exécution
8
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
try {
/* ... */
}
catch (Exception ex) {
/* ... */
}
finally {
/* ... */
}
• try { /* ... */}
bloc dans lequel les exceptions sont susceptibles d'être levées.
• catch (Exception ex) { /* ... */}
bloc dans lequel l’exception est gérée
• finally { /* ... */}
bloc contenant des instructions qui seront toujours exécutées, qu’une exception
soit levée ou pas
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 9
La gestion des exceptions en Java ->
Les mots clés try, catch et finally
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions
HIÉRARCHIE DES CLASSES D’EXCEPTIONS JAVA
10
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
hiérarchie des classes d’exceptions java
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions en Java ->
Hiérarchie des classes d’exceptions Java
11
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• possibilité d’avoir plusieurs bloc catch pour
un/plusieurs blocs try
• les blocs catch doivent être ordonnés de
l’exception la plus spécifique à la plus générale
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions en Java ->
Hiérarchie des classes d’exceptions Java
12
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
L’exception ArithmeticException est plus précise dans ce cas
Exception
ArithmeticException
…
Un exemple
d’exécution
La gestion des exceptions en Java ->
Hiérarchie des classes d’exceptions Java
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 13
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions
LES EXCEPTIONS PERSONNALISÉES
14
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• possibilité de créer sa propre classe de gestion d’exception
• faisons en sorte que le nombre de sucres dans un café ne puisse être un
nombre négatif
• d’abord, définissons notre propre classe d’exception NbSucresException
La gestion des exceptions en Java ->
Les exceptions personnalisées
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 15
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• puis, entourons la partie qui peut générer NbSucresException par
try, catch
• enfin, modifions le constructeur correspondant de Cafe de la sorte :
La gestion des exceptions en Java ->
Les exceptions personnalisées
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 16
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcissePapa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• Nous pouvons exécuter notre programme pour remarquer le résultat
La gestion des exceptions en Java ->
Les exceptions personnalisées
17
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
La gestion des exceptions
LANCER UNE EXCEPTION AVEC THROWS ET THROW
18
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• throws permet d’indiquer qu’une méthode est susceptible de lancer une
exception
• il est ajouté à l’entête de la méthode concernée suivie du nom de l’exception
• lorsqu’il est ajouté à l’entête d’une méthode, le compilateur exigera que
l’appel à cette méthode soit entouré d’un bloc try, catch
19
La gestion des exceptions en Java ->
Lancer une exception avec throws et throw
Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse
• throw permet de déclencher l’exception en instanciant la classe de cette
exception
• il se trouve dans la méthode susceptible de lancer l’exception et vient
d’habitude après un test
• dans notre cas, il permet de lancer l’exception NbSucresException
lorsque nbSucres < 0
20
La gestion des exceptions en Java ->
Lancer une exception avec throws et throw

Contenu connexe

Tendances

Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
ENSET, Université Hassan II Casablanca
 

Tendances (20)

Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 

En vedette

Les AGL pour projets mobiles
Les AGL pour projets mobilesLes AGL pour projets mobiles
Les AGL pour projets mobiles
Herve Fotso
 
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big DataPrincipe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
René MANDEL
 

En vedette (20)

Exceptions
ExceptionsExceptions
Exceptions
 
Thoughts on Building Metrics for Good Developers
Thoughts on Building Metrics for Good DevelopersThoughts on Building Metrics for Good Developers
Thoughts on Building Metrics for Good Developers
 
Never Develop Alone - Always with a partner
Never Develop Alone - Always with a partnerNever Develop Alone - Always with a partner
Never Develop Alone - Always with a partner
 
Bi methodes agiles
Bi methodes agilesBi methodes agiles
Bi methodes agiles
 
Full-Time Pair-Programming @ SoftShake 2014
Full-Time Pair-Programming @ SoftShake 2014Full-Time Pair-Programming @ SoftShake 2014
Full-Time Pair-Programming @ SoftShake 2014
 
Java rappels e-s
Java rappels e-sJava rappels e-s
Java rappels e-s
 
Les AGL pour projets mobiles
Les AGL pour projets mobilesLes AGL pour projets mobiles
Les AGL pour projets mobiles
 
Java - Exceptions
Java - ExceptionsJava - Exceptions
Java - Exceptions
 
Chp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLChp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGL
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
 
Coding fast and slow
Coding fast and slowCoding fast and slow
Coding fast and slow
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 
Ch11
Ch11Ch11
Ch11
 
Masque carrière en informatique
Masque   carrière en informatiqueMasque   carrière en informatique
Masque carrière en informatique
 
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big DataPrincipe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
 
eXtreme Programming, une introduction
eXtreme Programming, une introductioneXtreme Programming, une introduction
eXtreme Programming, une introduction
 
Formation POO & Java (2ème séance)
Formation POO & Java (2ème séance)Formation POO & Java (2ème séance)
Formation POO & Java (2ème séance)
 
Planificació 1
 Planificació 1 Planificació 1
Planificació 1
 
Allianz Gastvortrag XING Recruiting Show 2012
Allianz Gastvortrag XING Recruiting Show 2012Allianz Gastvortrag XING Recruiting Show 2012
Allianz Gastvortrag XING Recruiting Show 2012
 

Plus de Papa Cheikh Cisse

Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Papa Cheikh Cisse
 
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMIMise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Papa Cheikh Cisse
 

Plus de Papa Cheikh Cisse (10)

FINETECH SMS Banking
FINETECH SMS BankingFINETECH SMS Banking
FINETECH SMS Banking
 
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMIMise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
 
Analyse de méthodes intelligentes de détection de fissures dans diverses stru...
Analyse de méthodes intelligentes de détection de fissures dans diverses stru...Analyse de méthodes intelligentes de détection de fissures dans diverses stru...
Analyse de méthodes intelligentes de détection de fissures dans diverses stru...
 
An overview of standards and related technology in web services
An overview of standards and related technology in web servicesAn overview of standards and related technology in web services
An overview of standards and related technology in web services
 
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
 
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
Optimisation centralisée et distribuée de la durée de vie des réseaux de capt...
 
Cube based summaries of large association rule sets
Cube based summaries of large association rule setsCube based summaries of large association rule sets
Cube based summaries of large association rule sets
 
IP Multimedia Subsystem (IMS)
IP Multimedia Subsystem (IMS)IP Multimedia Subsystem (IMS)
IP Multimedia Subsystem (IMS)
 
Le projet PICSEL (Production d'Interfaces à base de Connaissance pour des Ser...
Le projet PICSEL (Production d'Interfaces à base de Connaissance pour des Ser...Le projet PICSEL (Production d'Interfaces à base de Connaissance pour des Ser...
Le projet PICSEL (Production d'Interfaces à base de Connaissance pour des Ser...
 
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMIMise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
 

Dernier

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (16)

Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 

La gestion des exceptions avec Java

  • 1. La gestion des exceptions La programmation en Java MIT University M1 Génie Logiciel 2012- 2013 M. CISSE
  • 2. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse Plan 1. Les concepts de base 2. Les mots clés try, catch et finally 3. Hiérarchie des classes d’exceptions Java 4. Les exceptions personnalisées 5. Lancer une exception avec throw et throws Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 2
  • 3. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions LES CONCEPTS DE BASE 3
  • 4. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions en Java -> Concepts de base Une exception : une erreur qui se produit lors de l’exécution d’un programme (division par zéro) Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 4
  • 5. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • il n’est pas très convivial qu’une erreur conduise à l’interruption d’un programme en plein milieu d’exécution • Java propose une façon de les gérer en évitant l’arrêt du programme (la capture des exceptions) : 1. repérer d’abord les parties du code qui pourraient les provoquer 2. utiliser ensuite les mots clés try, catch et finally pour afficher un message personnalisé empêchant ainsi l’arrêt "sauvage" du programme La gestion des exceptions en Java -> Concepts de base 5
  • 6. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions LES MOTS CLÉS TRY, CATCH ET FINALLY 6
  • 7. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse Repérons d’abord dans notre code la partie susceptible de lever une exception La gestion des exceptions en Java -> Les mots clés try, catch et finally risque division par zéro, exception possible Un exemple d’exécution Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 7
  • 8. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse ensuite entourons la d’un bloc try, catch La gestion des exceptions en Java -> Les mots clés try, catch et finally Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse Un exemple d’exécution 8
  • 9. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse try { /* ... */ } catch (Exception ex) { /* ... */ } finally { /* ... */ } • try { /* ... */} bloc dans lequel les exceptions sont susceptibles d'être levées. • catch (Exception ex) { /* ... */} bloc dans lequel l’exception est gérée • finally { /* ... */} bloc contenant des instructions qui seront toujours exécutées, qu’une exception soit levée ou pas Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 9 La gestion des exceptions en Java -> Les mots clés try, catch et finally
  • 10. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions HIÉRARCHIE DES CLASSES D’EXCEPTIONS JAVA 10
  • 11. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse hiérarchie des classes d’exceptions java Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions en Java -> Hiérarchie des classes d’exceptions Java 11
  • 12. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • possibilité d’avoir plusieurs bloc catch pour un/plusieurs blocs try • les blocs catch doivent être ordonnés de l’exception la plus spécifique à la plus générale Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions en Java -> Hiérarchie des classes d’exceptions Java 12
  • 13. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse L’exception ArithmeticException est plus précise dans ce cas Exception ArithmeticException … Un exemple d’exécution La gestion des exceptions en Java -> Hiérarchie des classes d’exceptions Java Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 13
  • 14. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions LES EXCEPTIONS PERSONNALISÉES 14
  • 15. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • possibilité de créer sa propre classe de gestion d’exception • faisons en sorte que le nombre de sucres dans un café ne puisse être un nombre négatif • d’abord, définissons notre propre classe d’exception NbSucresException La gestion des exceptions en Java -> Les exceptions personnalisées Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 15
  • 16. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • puis, entourons la partie qui peut générer NbSucresException par try, catch • enfin, modifions le constructeur correspondant de Cafe de la sorte : La gestion des exceptions en Java -> Les exceptions personnalisées Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse 16
  • 17. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcissePapa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • Nous pouvons exécuter notre programme pour remarquer le résultat La gestion des exceptions en Java -> Les exceptions personnalisées 17
  • 18. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse La gestion des exceptions LANCER UNE EXCEPTION AVEC THROWS ET THROW 18
  • 19. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • throws permet d’indiquer qu’une méthode est susceptible de lancer une exception • il est ajouté à l’entête de la méthode concernée suivie du nom de l’exception • lorsqu’il est ajouté à l’entête d’une méthode, le compilateur exigera que l’appel à cette méthode soit entouré d’un bloc try, catch 19 La gestion des exceptions en Java -> Lancer une exception avec throws et throw
  • 20. Papa Cheikh CISSE, http://pacheikh.wordpress.com, @pacheikhcisse • throw permet de déclencher l’exception en instanciant la classe de cette exception • il se trouve dans la méthode susceptible de lancer l’exception et vient d’habitude après un test • dans notre cas, il permet de lancer l’exception NbSucresException lorsque nbSucres < 0 20 La gestion des exceptions en Java -> Lancer une exception avec throws et throw

Notes de l'éditeur

  1. Type d’erreur specifique au programme
  2. Entourer partry et catch ne suffit pas car java ne peut pas savoir qu’un cafe doit avoir un nbre de sucres &gt;= 0