Exceptions
-
Upload
axel-kamalak -
Category
Technology
-
view
572 -
download
0
description
Transcript of Exceptions
![Page 1: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/1.jpg)
Les exceptionsLes exceptionsAxel KAMALAK
![Page 2: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/2.jpg)
Les exceptionsLes exceptions
La notion d'exception est un mécanisme permettant au
développeur JAVA de traiter de manière efficace et simple le
problème de la gestion des erreurs lors de l'exécution d'un
programme.
Il s'agit d'un signal qui indique qu'un évènement anormal est
survenu dans un programme. La récupération de l'exception
permet au programme de s'exécuter.
![Page 3: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/3.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
L’utilisateur
![Page 4: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/4.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
L’utilisateur Le développeur
![Page 5: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/5.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
L’utilisateur peut entrer des données L’utilisateur peut entrer des données non autorisées.
Un chiffre au lieu d’un nombre, …
![Page 6: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/6.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
Le développeur peut avoir oubliéLe développeur peut avoir oubliéde tester une condition
![Page 7: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/7.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
Le développeur peut avoir oubliéLe développeur peut avoir oubliéde tester une condition
![Page 8: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/8.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
Si le développeur écrit trop de test,Si le développeur écrit trop de test,le code devient vite illisible.
![Page 9: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/9.jpg)
Les exceptionsLes exceptions
Différentes causes sont à l’origine de ce problème :
Si le développeur écrit trop de test,Si le développeur écrit trop de test,le code devient vite illisible.
Pour répondre à ce besoin, le langage JAVA propose la gestion des évènements.
![Page 10: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/10.jpg)
Les exceptionsLes exceptions
package Exercice;
public class Exercice3 {
public static void main (String [] args){
Soit le programme suivant :
{int a = 5 ;int b= 6 ; int c =0 ;
int somme = a*b/c;
System.out.println(somme);
}}
![Page 11: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/11.jpg)
Les exceptionsLes exceptions
package Exercice;
public class Exercice3 {
public static void main (String [] args){
Soit le programme suivant :
{int a = 5 ;int b= 6 ; int c =0 ;
int somme = a*b/c;
System.out.println(somme);
}}
![Page 12: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/12.jpg)
Les exceptionsLes exceptions
package Exercice;
public class Exercice3 {
public static void main (String [] args){{int a = 5 ;int b= 6 ; int c =0 ;
int somme = a*b/c;
System.out.println(somme);
}}
![Page 13: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/13.jpg)
Les exceptionsLes exceptions
package Exercice;
public class Exercice3 {
public static void main (String [] args){{int a = 5 ;int b= 6 ; int c =0 ;
int somme = a*b/c;
System.out.println(somme);
}}
L’utilisateur peut entrer 0
![Page 14: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/14.jpg)
Les exceptionsLes exceptions
package Exercice;
public class Exercice3 {
public static void main (String [] args){{int a = 5 ;int b= 6 ; int c =0 ;
int somme = a*b/c;
System.out.println(somme);
}}Exception in thread "main" java.lang.ArithmeticException: / by zeroat Exercice.Exercice3.main(Exercice3.java:11)
Génération d’erreur
![Page 15: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/15.jpg)
Les exceptionsLes exceptionsNous pourrions résoudre ce problème à l’aide d’un
test if – else.
package Exercice;
public class Exercice3 {
public static void main (String [] args)public static void main (String [] args){int a = 5 ;int b= 6 ; int c =0 ;
int somme = a*b/c;
System.out.println(somme);
}}
Il faudrait tester que la variable c est différent de 0.
![Page 16: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/16.jpg)
Les exceptionsLes exceptionsNous pourrions résoudre ce problème à l’aide d’un
test if – else.
package Exercice;
public class Exercice3 {
public static void main (String [] args)public static void main (String [] args){int a = 5 ;int b= 6 ; int c =0 ;if(c!=0){int somme = a*b/c;System.out.println(somme);}
}}
Il faudrait tester que la variable c est différent de 0.
![Page 17: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/17.jpg)
Les exceptionsLes exceptionsNous pourrions résoudre ce problème à l’aide d’un
test if – else.
package Exercice;
public class Exercice3 {
public static void main (String [] args)public static void main (String [] args){int a = 5 ;int b= 6 ; int c =0 ;if(c!=0){int somme = a*b/c;System.out.println(somme);}
}}
Ce qui risque d’ alourdir le code et le code va vite devenir illisible.
![Page 18: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/18.jpg)
Les exceptionsLes exceptionspublic class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
int b= 6 ;
int c = 0 ;
try{try{
int somme = a*b/c;
System.out.println(somme);
}
catch (ArithmeticException e)
{
System.out.println("Interdit de diviser par 0 !");
}
}
}
![Page 19: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/19.jpg)
Les exceptionsLes exceptionspublic class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
int b= 6 ;
int c = 0 ;
try{
Cette zone peut générer une erreurtry{
int somme = a*b/c;
System.out.println(somme);
}
catch (ArithmeticException e)
{
System.out.println("Interdit de diviser par 0 !");
}
}
}
une erreur
![Page 20: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/20.jpg)
Les exceptionsLes exceptionspublic class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
int b= 6 ;
int c = 0 ;
try{try{
int somme = a*b/c;
System.out.println(somme);
}
catch (ArithmeticException e)
{
System.out.println("Interdit de diviser par 0 !");
}
}}
![Page 21: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/21.jpg)
Les exceptionsLes exceptionspublic class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
int b= 6 ;
int c = 0 ;
try{On va mettre le code susceptible de générer une
int somme = a*b/c;
System.out.println(somme);
}
catch (ArithmeticException e)
{
System.out.println("Interdit de diviser par 0 !");
}
}}
susceptible de générer une erreur entre le bloc « try »
![Page 22: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/22.jpg)
Les exceptionsLes exceptionspublic class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
int b= 6 ;
int c = 0 ;
try{Dans le cas d’une exception,l’action à réaliser dans le bloc
int somme = a*b/c;
System.out.println(somme);
}
catch (ArithmeticException e)
{
System.out.println("Interdit de diviser par 0 !");
}
}}
l’action à réaliser dans le bloc « catch »
![Page 23: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/23.jpg)
Les exceptionsLes exceptionspublic class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
int b= 6 ;
int c = 0 ;
try{
Il est possible de prévoir 1 ou plusieurs types d’actions à réaliser.
int somme = a*b/c;
System.out.println(somme);
}
catch (ArithmeticException e)
{
System.out.println("Interdit de diviser par 0 !");
}
}}
![Page 24: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/24.jpg)
Les exceptionsLes exceptions
Syntaxe JAVA
try
{
..
}}
catch (ClasseException1 variable)
{
…
}
catch (ClasseException2 variable)
{
…
}
![Page 25: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/25.jpg)
Les exceptionsLes exceptions
Syntaxe JAVA
try
{
Partie de code susceptible de générer une erreur
}}
catch (ClasseException1 variable)
{
}
catch (ClasseException2 variable)
{
…
}
![Page 26: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/26.jpg)
Les exceptionsLes exceptions
Syntaxe JAVA
try
{
Partie de code susceptible de générer une erreur
}}
catch (ClasseException1 variable)
{
Action à réaliser si le cas appartient à ClasseException1
}
catch (ClasseException2 variable)
{
…
}
![Page 27: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/27.jpg)
Les exceptionsLes exceptions
Syntaxe JAVA
try
{
Partie de code susceptible de générer une erreur
}}
catch (ClasseException1 variable)
{
Action à réaliser si le cas appartient à ClasseException1
}
catch (ClasseException2 variable)
{
Action à réaliser si le cas appartient à ClasseException2
}
![Page 28: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/28.jpg)
Les exceptionsLes exceptions
Le bloc finally
Un bloc finally permet au programmeur de définir un
ensemble d'instructions qui est toujours exécuté, queensemble d'instructions qui est toujours exécuté, que
l'exception soit levée ou non, capturée ou non.
La seule instruction qui peut faire qu'un bloc finally
ne soit pas exécuté est System.exit().
![Page 29: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/29.jpg)
Les exceptionsLes exceptionspackage Exercice;
public class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
try{int somme = a*b/c;
System.out.println(somme);}catch (ArithmeticException e){System.out.println("Interdit de diviser par 0 !");
}int b= 6 ;
int c = 0 ;
}finally{System.out.println("Bloc Finally!");}}}
Le bloc finally sera exécuté à la fin !
![Page 30: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/30.jpg)
Les exceptionsLes exceptionspackage Exercice;
public class Exercice3 {
public static void main (String [] args)
{
int a = 5 ;
try{int somme = a*b/c;
System.out.println(somme);}catch (ArithmeticException e){System.out.println("Interdit de diviser par 0 !");
}int b= 6 ;
int c = 0 ;
}finally{System.out.println("Bloc Finally!");}}}
Le résultat d’affichage est :Interdit de diviser par 0 !Bloc Finally!
![Page 31: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/31.jpg)
Les exceptionsLes exceptions
Les erreurs les plus fréquentes :
� Division par zéro pour les entiers : ArithmeticException
� référence nulle : NullPointerException
Type illégale : ClassCastException� Type illégale : ClassCastException
� Tentative de création d'un tableau de taille négative : NegativeArraySizeException
� Dépassement de limite d'un tableau : ArrayIndexOutOfBoundsException
� Format non valable : NumberFormatException
![Page 32: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/32.jpg)
Les exceptionsLes exceptions
Les erreurs les plus fréquentes :
� Division par zéro pour les entiers : ArithmeticException
� référence nulle : NullPointerException
Type illégale : ClassCastException� Type illégale : ClassCastException
� Tentative de création d'un tableau de taille négative : NegativeArraySizeException
� Dépassement de limite d'un tableau : ArrayIndexOutOfBoundsException
� Format non valable : NumberFormatException
Et si nous voulons créer nos propres exceptions?
![Page 33: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/33.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Les exceptionspersonnalisées.
![Page 34: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/34.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Nous avons 3 classes�Main ; Classe principale�Passagers : Classe passagers �MonException : Exception Personnalisée
![Page 35: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/35.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Etudions un cas où une exception n’est pas générée. On appelle la méthode « doNbPassager » avec « 5 » comme argument.
![Page 36: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/36.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
La condition n’est pas respectée.
![Page 37: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/37.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}}
}
On exécute le contenu du bloc else
![Page 38: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/38.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Etudions un cas où une exception va être levée.
![Page 39: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/39.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
On appelle la méthode doNbPassageravec comme argument -12
![Page 40: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/40.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
La condition est respectée. -12 est un nombre négatif.
![Page 41: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/41.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
On appelle l’exception « MonException » par le biais du mot clé throw.
![Page 42: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/42.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Nous arrivons dans la méthode qui permet d’exécuter un message personnalisé en cas d’exception.
![Page 43: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/43.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Nous affichons le message.
![Page 44: Exceptions](https://reader033.fdocument.pub/reader033/viewer/2022060111/5563a4e8d8b42a2b6a8b51eb/html5/thumbnails/44.jpg)
Les exceptionsLes exceptionspackage unpackage;public class Main {public static void main(String[] args) {Passagers monTrain = new Passagers();try{monTrain.doNbPassager(5); monTrain.doNbPassager(7); monTrain.doNbPassager(8); monTrain.doNbPassager(-12);
}catch(MonExption a){
package unpackage;
public class Passagers {
void doNbPassager(int value) throws MonExption{if(value < 0){throw new MonExption(value);}else {System.out.println("Nombre correct de passagers : "+value);}}catch(MonExption a){
System.out.println ("Exception générée par : "+ a );}}}
package unpackage;public class MonExption extends Exception {MonExption(int v){System.out.println("Le nombre de passager ne peut pas être négatif:"+ v);}
}
}
}
Nous exécutons le message contenu dans le bloc catch. Ce bloc s’exécutera à chaque fois qu’une exception est attrapée.