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

Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-dataFormation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-dataLhouceine OUHAMZA
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
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
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Faycel Chaoua
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsMouna Torjmen
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeurAbdelwahab Naji
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 

Tendances (20)

Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-dataFormation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-data
 
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
 
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
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
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...
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
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
 
React-cours.pdf
React-cours.pdfReact-cours.pdf
React-cours.pdf
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeur
 
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
 
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
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 

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

les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
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.pdfAmgdoulHatim
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
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 informatiquesMohammedAmineHatoch
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
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 BANKNassimaMdh
 
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 FLElebaobabbleu
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
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 projetJeanYvesMoine
 
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.pptxhamzagame
 
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 EudesUnidad de Espiritualidad Eudista
 
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.pdftrendingv83
 
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.pptxabdououanighd
 
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...Nguyen Thanh Tu Collection
 
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 ...Universidad Complutense de Madrid
 
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.pptxikospam0
 

Dernier (19)

les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
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
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
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
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
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
 
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
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
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
 
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
 
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
 
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
 
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
 
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...
 
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 ...
 
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
 

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