Manipulation de l'exception Java

Manipulation de l'exception Java
Lorsque le flux normal de l'exécution du programme interrompt pour toute erreur, alors il est appelé une exception. Ce type d'événement peut être géré en utilisant un essai-pri-final bloc. Une exception est un objet qui est utilisé pour attraper l'erreur et exécuter l'instruction en fonction de la condition d'erreur qui est appelée exception. Principalement deux types d'erreur sont gérés par la manipulation des exceptions. Ceux-ci sont Temps compilé erreurs et Durée les erreurs. Le Durée Les erreurs sont gérées par la manipulation des exceptions. Comment vous pouvez gérer les exceptions en Java est expliquée dans ce tutoriel.

Syntaxe:

La syntaxe de l'essai-capt-finalement le bloc est donné ci-dessous.

essayer
Déclaration 1… n

catch (exceptionttype var)
Déclaration 1… n

enfin
Déclaration 1… n

Ici, si une exception se produit dans le bloc d'essai, l'exception sera jetée au bloc de capture et que le bloc final est facultatif ici. Le code du bloc final exécute si une exception se produit ou non.

Exemple-1: Gestion des exceptions avec un seul bloc de capture

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

Importer Java.Io.BufferedReader;
Importer Java.Io.FileReader;
Importer Java.Io.IoException;
Importer Java.user.Scanner;
classe publique sauf1
public static void main (String [] args)
// Créer un objet de scanner
Scanner dans = nouveau scanner (système.dans);
Système.dehors.print ("Entrez le nom de fichier:");
// Prenez des données de chaîne de l'utilisateur
String filename = in in.suivant();
essayer
// Créer un objet de lecteur
BufferedReader Reader = new BufferedReader (nouveau FileReader (nom de fichier));
// Lire la première ligne si le fichier existe
Ligne de chaîne = lecteur.readLine ();
Pendant (ligne != null)
// imprime la ligne
Système.dehors.println (ligne);
// Lire la ligne suivante
ligne = lecteur.readLine ();

// Fermez l'objet lecteur
lecteur.fermer();
// Fermez l'objet scanner
dans.fermer();
catch (ioexception e)
// imprime le message d'erreur
Système.dehors.println ("Le fichier n'existe pas");


Sortir:

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

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

Exemple-2: Gestion des exceptions avec un bloc de capture multiple

Comment vous pouvez utiliser plusieurs blocs de capture pour gérer plusieurs exceptions est indiqué dans l'exemple suivant. Ici, trois blocs de capture sont déclarés. Le premier bloc de capture attrapera l'erreur arithmétique lorsqu'une opération arithmétique illogique est effectuée. Le deuxième Catch Bock attrapera l'erreur hors de portée du tableau lorsqu'une valeur d'indice de tableau sera essayée de lire qui n'existe pas. Le troisième bloc de capture attrapera l'erreur de valeur numérique lorsque toute valeur de caractère ou de chaîne est donnée en tant que valeur de tableau. Dans le code, un tableau avec 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 d'essai.

Importer Java.user.Scanner;
classe publique sauf2
public static void main (String [] args)

essayer

// déclare un tableau numérique
int num_arr [] = new int [4];
// Créer un objet de scanner
Scanner dans = nouveau scanner (système.dans);
Système.dehors.println ("Entrez quatre numéros:");
// itérate la boucle quatre fois
pour (int i = 0; i < 4; i++)
// Numéro d'entrée
int n = dans.NextInt ();
// attribue la valeur à la table
num_arr [i] = n;

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

// diviser et imprimer la valeur
int num = 50/0;
Système.dehors.print (num);
// Fermez l'objet scanner
dans.fermer();

catch (arithmeticexception e)

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

Catch (ArrayIndexoutofBoundSexception E)

Système.dehors.println ("La valeur de l'indice hors du tableau s'est produite");

Catch (exception e)

Système.dehors.println ("La valeur du nombre n'est pas donnée");


Sortir:

La sortie suivante montre que les valeurs de tableau sont insérées et imprimées correctement, mais le troisième bloc de capture 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 en tant que valeur de tableau, la deuxième exception est générée et l'instruction du deuxième bloc de capture est exécutée.

Exemple-3: Manipulation des exceptions avec bloc d'essai-match-final

L'utilisation du bloc finalement avec le bloc de coups d'essai est affichée dans l'exemple suivant. Le code de Block finalement s'exécute si une exception se produit ou non. Dans le code, une valeur entière sera tirée de l'utilisateur. Si l'utilisateur donne une valeur de chaîne, alors Entrée en conception

générera et imprimera le message à partir du bloc de capture. L'objet de scanner sera fermé dans le enfin Bloquer si l'exception génère ou non.

Importer Java.user.Scanner;
Importer Java.user.EntingMismatchException;
classe publique sauf3
public static void main (String [] args)
// Créer un objet de scanner
Scanner dans = nouveau scanner (système.dans);
Système.dehors.print ("Entrez un numéro:");
essayer
// Prenez des données de chaîne de l'utilisateur
int numéro = dans.NextInt ();
// imprime le numéro
Système.dehors.println ("La valeur de nombre =" + nombre);
catch (inputMismatchException e)
// Imprimer le message d'erreur
Système.dehors.println ("La valeur de la chaîne n'est pas acceptée.");

enfin
// Fermez l'objet scanner
dans.fermer();
Système.dehors.println ("terminé du programme");


Sortir:

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

Suivant, Bonjour est donné comme entrée après avoir exécuté le code qui est une chaîne. Ainsi, l'exception est générée, et le message d'erreur du bloc de capture est imprimé. Le message du bloc final est imprimé plus tard.

Conclusion:

La gestion des exceptions est une caractéristique très importante et utile de tout langage de programmation qui peut être utilisée pour masquer le message d'erreur réel à l'utilisateur et fournir le message d'erreur lisible par l'homme pour que l'utilisateur comprenne correctement l'erreur. Ce tutoriel aide l'utilisateur à apprendre différentes façons d'appliquer la gestion des exceptions en Java et à rendre son code plus approprié.