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

POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 ExceptionsMouna Torjmen
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.jsBruno Bonnin
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 

Tendances (20)

POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
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
 
Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)
 
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
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.js
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 

En vedette

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 DevelopersHoussam FAKIH
 
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 partnerHoussam FAKIH
 
Bi methodes agiles
Bi methodes agilesBi methodes agiles
Bi methodes agilesyoussef222
 
Full-Time Pair-Programming @ SoftShake 2014
Full-Time Pair-Programming @ SoftShake 2014Full-Time Pair-Programming @ SoftShake 2014
Full-Time Pair-Programming @ SoftShake 2014Houssam FAKIH
 
Java rappels e-s
Java rappels e-sJava rappels e-s
Java rappels e-somarsaid
 
Les AGL pour projets mobiles
Les AGL pour projets mobilesLes AGL pour projets mobiles
Les AGL pour projets mobilesHerve Fotso
 
Java - Exceptions
Java - ExceptionsJava - Exceptions
Java - ExceptionsNoël
 
Chp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLChp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLLilia Sfaxi
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des ChargesLilia Sfaxi
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in javaPratik Soares
 
Masque carrière en informatique
Masque   carrière en informatiqueMasque   carrière en informatique
Masque carrière en informatiquejulleb0253
 
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 DataRené MANDEL
 
eXtreme Programming, une introduction
eXtreme Programming, une introductioneXtreme Programming, une introduction
eXtreme Programming, une introductionhortis
 
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)G²FOSS ENIT
 
Planificació 1
 Planificació 1 Planificació 1
Planificació 1Leyla2007
 
Allianz Gastvortrag XING Recruiting Show 2012
Allianz Gastvortrag XING Recruiting Show 2012Allianz Gastvortrag XING Recruiting Show 2012
Allianz Gastvortrag XING Recruiting Show 2012XING AG
 

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

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/PMIPapa Cheikh Cisse
 
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...Papa Cheikh Cisse
 
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 servicesPapa 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
 
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
 
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 setsPapa Cheikh Cisse
 
IP Multimedia Subsystem (IMS)
IP Multimedia Subsystem (IMS)IP Multimedia Subsystem (IMS)
IP Multimedia Subsystem (IMS)Papa Cheikh Cisse
 
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...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/PMIPapa 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

SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 

Dernier (19)

SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 

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