Java

Gestion des exceptions Java

Gestion des exceptions Java
Lorsque le flux normal de l'exécution du programme s'interrompt pour une erreur, cela s'appelle une exception. Ce type d'événement peut être géré en utilisant un essai-attrape-enfin bloquer. Une exception est un objet utilisé pour intercepter l'erreur et exécuter l'instruction en fonction de la condition d'erreur appelée gestion des exceptions. Principalement deux types d'erreurs sont gérés par la gestion des exceptions. Ceux-ci sont temps compilé erreurs et Durée les erreurs. le Durée les erreurs sont gérées par la gestion des exceptions. Comment vous pouvez gérer les exceptions en Java est expliqué dans ce tutoriel.

Syntaxe:

La syntaxe de le try-catch-enfin bloc est donné ci-dessous.

essayer
déclaration 1… N

catch (ExceptiontType var)
déclaration 1… N

finalement
déclaration 1… N

Ici, si une exception se produit dans le bloc try, l'exception sera renvoyée au bloc catch, et le bloc finally est facultatif ici. Le code du bloc finally s'exécute qu'une exception se produise ou non.

Exemple 1 : gestion des exceptions avec un seul bloc catch

L'exemple suivant montre l'utilisation de la gestion des exceptions à l'aide d'un seul bloc catch. Un nom de fichier sera pris en entrée et créera un objet de BufferedReader pour ouvrir un fichier en lecture. Si le nom de fichier existe, alors le contenu du fichier sera lu ligne par ligne et imprimé. Si le fichier n'existe pas, alors une exception sera générée, et un message d'erreur sera imprimé.

importer java.io.BufferedReader;
importer java.io.Lecteur de fichiers ;
importer java.io.IOException ;
importer java.util.Scanner;
classe publique except1
public static void main(String[] args)
// Créer un objet Scanner
Scanner dans = nouveau Scanner (Système.dans);
Système.en dehors.print("Entrez le nom du fichier : ");
// Prend les données de chaîne de l'utilisateur
String FileName = dans.suivant();
essayer
//Créer un objet lecteur
Lecteur BufferedReader = new BufferedReader(new FileReader(FileName));
//Lire la première ligne si le fichier existe
Ligne de chaîne = lecteur.readLine();
tandis que (ligne != nul)
//Imprime la ligne
Système.en dehors.println(ligne);
//Lire la ligne suivante
ligne = lecteur.readLine();

//Ferme l'objet lecteur
lecteur.Fermer();
//Ferme l'objet scanner
dans.Fermer();
catch (IOException e)
//Imprime le message d'erreur
Système.en dehors.println("Le fichier n'existe pas");


Production:

Dans la sortie suivante,  'Bonjour.SMS' est donné comme nom de fichier qui n'existe pas. Donc le message suivant s'imprime.

La prochaine fois, fichier1.SMS est donné comme nom de fichier qui existe, et la sortie montre le contenu du fichier.

Exemple 2 : gestion des exceptions avec plusieurs blocs catch

L'exemple suivant montre comment vous pouvez utiliser plusieurs blocs catch pour gérer plusieurs exceptions. Ici, trois blocs catch sont déclarés. Le premier bloc catch attrapera l'erreur arithmétique lorsqu'une opération arithmétique illogique est effectuée. Le deuxième catch bock attrapera l'erreur hors plage du tableau lorsqu'une valeur d'index de tableau sera tentée de lire qui n'existe pas. Le troisième bloc catch attrapera l'erreur de valeur numérique lorsqu'un caractère ou une valeur de chaîne est donné en tant que valeur de tableau. Dans le code, un tableau à quatre index est déclaré et initialisé avec les valeurs entières qui seront tirées de l'utilisateur. Les valeurs du tableau sont imprimées à l'aide d'une boucle. Une opération de division est effectuée à la fin du bloc try.

importer java.util.Scanner;
classe publique except2
public static void main(String[] args)

essayer

//Déclarer un tableau numérique
int num_arr[] = nouveau int[4] ;
//Créer un objet Scanner
Scanner dans = nouveau Scanner (Système.dans);
Système.en dehors.println("Entrez quatre chiffres :");
// Itérer la boucle quatre fois
pour (int i = 0; i < 4; i++)
//Saisir le numéro
entier n = dans.suivantInt();
//Attribuer une valeur au tableau
nombre_arr[i] = n;

Système.en dehors.println("Les valeurs du tableau sont :");
// Itérer la boucle cinq fois
pour (int i = 0; i < 4; i++)
//Imprime les valeurs du tableau
Système.en dehors.println(num_arr[i]);

// Diviser et imprimer la valeur
nombre entier = 50/0 ;
Système.en dehors.print(num);
//Ferme l'objet scanner
dans.Fermer();

catch(ArithmeticException e)

Système.en dehors.println("Aucun nombre n'est divisible par 0");

catch (ArrayIndexOutOfBoundsException e)

Système.en dehors.println("Une valeur d'index hors du tableau s'est produite");

capture (Exception e)

Système.en dehors.println("La valeur numérique n'est pas donnée");


Production:

La sortie suivante montre que les valeurs du tableau sont insérées et imprimées correctement, mais le troisième bloc catch est exécuté car 50 est divisé par 0, ce qui est une erreur.

Le programme est exécuté pour la deuxième fois. Lorsqu'une valeur de chaîne est donnée sous forme de valeur de tableau, la deuxième exception est générée et l'instruction du deuxième bloc catch est exécutée.

Exemple-3 : Gestion des exceptions avec le bloc try-catch-finally

L'utilisation du bloc finally avec le bloc try-catch est illustrée dans l'exemple suivant. Le code du bloc finally s'exécute si une exception se produit ou non. Dans le code, une valeur entière sera prise de l'utilisateur. Si l'utilisateur donne une valeur de chaîne, alors InputMismatchException

va générer et imprimer le message du bloc catch. L'objet scanner sera fermé dans le finalement bloquer si l'exception génère ou non.

importer java.util.Scanner;
importer java.util.InputMismatchException;
classe publique except3
public static void main(String[] args)
//Créer un objet Scanner
Scanner dans = nouveau Scanner (Système.dans);
Système.en dehors.print("Entrez un nombre : ");
essayer
//Prendre les données de chaîne de l'utilisateur
nombre entier = dans.suivantInt();
//Imprimer le numéro
Système.en dehors.println("La valeur de nombre = " + nombre);
catch(InputMismatchException e)
//Imprimer le message d'erreur
Système.en dehors.println("La valeur de chaîne n'est pas acceptée.");

finalement
//Ferme l'objet scanner
dans.Fermer();
Système.en dehors.println("Terminé du programme");


Production:

78 est donné comme valeur d'entrée dans la sortie suivante après l'exécution du code. Donc, aucune exception n'est générée ici. Le message du bloc finally est imprimé plus tard.

Suivant, Bonjour est donné en entrée après l'exécution du code qui est une chaîne. Ainsi, l'exception est générée et le message d'erreur du bloc catch est imprimé. Le message du bloc finally est imprimé plus tard.

Conclusion:

La gestion des exceptions est une fonctionnalité très importante et utile de tout langage de programmation qui peut être utilisé pour masquer le vrai message d'erreur à l'utilisateur et fournir le message d'erreur lisible à l'utilisateur pour que l'utilisateur comprenne correctement l'erreur. Ce tutoriel aide l'utilisateur à apprendre différentes manières d'appliquer la gestion des exceptions en Java et à rendre son code plus approprié.

Le curseur saute ou se déplace de manière aléatoire lors de la saisie dans Windows 10
Si vous constatez que le curseur de votre souris saute ou se déplace tout seul, automatiquement, au hasard lors de la saisie sur un ordinateur portabl...
Comment inverser le sens de défilement de la souris et des pavés tactiles dans Windows 10
Souris et Pavé tactiles rendent non seulement l'informatique facile, mais plus efficace et moins chronophage. Nous ne pouvons pas imaginer une vie san...
Comment changer la taille, la couleur et le schéma du pointeur et du curseur de la souris sous Windows 10
Le pointeur et le curseur de la souris dans Windows 10 sont des aspects très importants du système d'exploitation. Cela peut également être dit pour d...