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

Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
ENSET, Université Hassan II Casablanca
 
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)

Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
arbres de decision.ppt
arbres de decision.pptarbres de decision.ppt
arbres de decision.ppt
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et stream
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
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...
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
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 distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
 

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

Dernier (12)

Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctions
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
Traitement des eaux usées par lagunage a macrophytes.pptx
Traitement des eaux usées par lagunage a macrophytes.pptxTraitement des eaux usées par lagunage a macrophytes.pptx
Traitement des eaux usées par lagunage a macrophytes.pptx
 
Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
Formation IAT pour sonelgaz chlef algérie.ppt
Formation IAT pour sonelgaz chlef algérie.pptFormation IAT pour sonelgaz chlef algérie.ppt
Formation IAT pour sonelgaz chlef algérie.ppt
 
Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 

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