Try Catch en Java: exemple de gestion des exceptions

Table des matières:

Anonim

Qu'est-ce qu'une exception en Java?

L'exception en Java est un événement qui interrompt l'exécution des instructions du programme et perturbe le déroulement normal de l'exécution du programme. Il s'agit d'un objet qui encapsule une information d'événement d'erreur qui s'est produite dans une méthode et qui est transmise au système d'exécution. En Java, les exceptions sont principalement utilisées pour indiquer différents types de conditions d'erreur.

Dans ce didacticiel, vous apprendrez-

  • Qu'est-ce qu'une exception?
  • Pourquoi avons-nous besoin d'Exception?
  • Comment gérer l'exception
  • Essayez Catch Block
  • Hiérarchie des classes d'exception Java
  • Bloquer enfin Java

Il existe deux types d'erreurs:

  1. Erreurs de compilation
  2. Erreurs d'exécution

Les erreurs de compilation peuvent à nouveau être classées en deux types:

  • Erreurs de syntaxe
  • Erreurs sémantiques

Exemple d'erreurs de syntaxe:

Au lieu de déclarer

int a;vous l'avez déclaré par erreur comme in a;pour quel compilateur lancera une erreur.

Exemple: vous avez déclaré une variable

int a;et après quelques lignes de code, vous déclarez à nouveau un entier comme int a;. Toutes ces erreurs sont mises en évidence lors de la compilation du code.

Exemple d'erreurs d'exécution

Une erreur d'exécution est appelée une erreur d' exceptions . Il s'agit de tout événement qui interrompt le déroulement normal de l'exécution du programme.

Exemples d'exceptions: exception arithmétique, exception pointeur nul, exception diviser par zéro, etc.

Les exceptions en Java sont quelque chose qui échappe au contrôle des développeurs.

Cliquez ici si la vidéo n'est pas accessible

Pourquoi avons-nous besoin d'Exception?

Supposons que vous ayez codé un programme pour accéder au serveur. Les choses ont bien fonctionné pendant que vous développiez le code.

Pendant l'exécution de la production réelle, le serveur est arrêté. Lorsque votre programme a tenté d'y accéder, une exception est déclenchée.

Comment gérer l'exception

Jusqu'à présent, nous l'avons vu, l'exception est au-delà du contrôle du développeur. Mais blâmer l'échec de votre code sur des problèmes environnementaux n'est pas une solution. Vous avez besoin d'une programmation robuste, qui prend en charge les situations exceptionnelles. Ce code est connu sous le nom de gestionnaire d'exceptions.

Dans notre exemple, une bonne gestion des exceptions serait, lorsque le serveur est arrêté, de se connecter au serveur de sauvegarde.

Pour implémenter cela, entrez votre code pour vous connecter au serveur (en utilisant les conditions traditionnelles if et else).

Vous vérifierez si le serveur est en panne. Si oui, écrivez le code pour vous connecter au serveur de sauvegarde.

Une telle organisation du code, en utilisant les boucles "if" et "else" n'est pas efficace lorsque votre code a plusieurs exceptions java à gérer.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Essayez Catch Block

Java fournit une gestion exceptionnelle intégrée.

  1. Le code normal entre dans un bloc TRY .
  2. Le code de gestion des exceptions entre dans le bloc CATCH

Dans notre exemple, le bloc TRY contiendra le code pour se connecter au serveur. Le bloc CATCH contiendra le code pour se connecter au serveur de sauvegarde.

Si le serveur est opérationnel, le code du bloc CATCH sera ignoré. Dans le cas où le serveur est en panne, une exception est levée et le code du bloc catch sera exécuté.

Voilà donc comment l'exception est gérée en Java.

Syntaxe d'utilisation de try & catch

try{statement(s)}catch (exceptiontype name){statement(s)}

Exemple

Étape 1) Copiez le code suivant dans un éditeur

class JavaException {public static void main(String args[]){int d = 0;int n = 20;int fraction = n/d;System.out.println("End Of Main");}}

Étape 2) Enregistrez le fichier et compilez le code. Exécutez le programme à l'aide de la commande, java JavaException

Étape 3) Une exception arithmétique - la division par zéro est indiquée ci-dessous pour la ligne 5 et la ligne 6 n'est jamais exécutée

Étape 4) Voyons maintenant comment try and catch nous aidera à gérer cette exception. Nous placerons l'exception provoquant la ligne de code dans un bloc try , suivi d'un bloc catch . Copiez le code suivant dans l'éditeur.

class JavaException {public static void main(String args[]) {int d = 0;int n = 20;try {int fraction = n / d;System.out.println("This line will not be Executed");} catch (ArithmeticException e) {System.out.println("In the catch Block due to Exception = " + e);}System.out.println("End Of Main");}}

Étape 5) Enregistrez, compilez et exécutez le code.Vous obtiendrez la sortie suivante

Comme vous le constatez, l'exception est gérée et la dernière ligne de code est également exécutée. Notez également que la ligne 7 ne sera pas exécutée car dès qu'une exception est déclenchée, le flux de contrôle saute au bloc catch.

Remarque: l' objet AritmeticException "e" contient des informations sur l'exception qui s'est produite, ce qui peut être utile pour effectuer des actions de récupération.

Hiérarchie des classes d'exception Java

Après l'exécution d'une instruction catch, les autres sont contournées et l'exécution se poursuit après le bloc try / catch. Les blocs catch imbriqués suivent la hiérarchie des exceptions.
  • Toutes les classes d'exception en Java étendent la classe «Throwable». Throwable a deux sous-classes, Error et Exception
  • La classe Error définit l'exception ou les problèmes qui ne devraient pas se produire dans des circonstances normales par notre programme, exemple Erreur de mémoire, erreur matérielle, erreur JVM, etc.
  • La classe Exception représente les exceptions qui peuvent être gérées par notre programme, et notre programme peut être récupéré à partir de cette exception en utilisant le bloc try and catch
  • Une exception d'exécution est une sous-classe de la classe d'exception. L'exception de ces types représente une exception qui se produit au moment de l'exécution et qui ne peut pas être suivie au moment de la compilation. Un excellent exemple de la même chose est une exception de division par zéro, ou une exception de pointeur nul, etc.
  • Une exception d'E / S est générée pendant les opérations d'entrée et de sortie
  • Les exceptions interrompues en Java sont générées pendant plusieurs threads.
Exemple: pour comprendre l'imbrication des blocs try et catch

Étape 1) Copiez le code suivant dans un éditeur.

class JavaException {public static void main(String args[]) {try {int d = 1;int n = 20;int fraction = n / d;int g[] = {1};g[20] = 100;}/*catch(Exception e){System.out.println("In the catch block due to Exception = "+e);}*/catch (ArithmeticException e) {System.out.println("In the catch block due to Exception = " + e);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("In the catch block due to Exception = " + e);}System.out.println("End Of Main");}}

Étape 2) Enregistrez le fichier et compilez le code. Exécutez le programme à l'aide de la commande java JavaException .

Étape 3) Une ArrayIndexOutOfBoundsException est générée. Changez la valeur de int d à 0. Enregistrez, compilez et exécutez le code.

Étape 4 ) Une ArithmeticException doit être générée.

Étape 5) Décommentez la ligne # 10 à la ligne # 12. Enregistrez, compilez et exécutez le code.

Étape 6) Erreur de compilation? Cela est dû au fait que Exception est la classe de base d'ArithmeticException Exception. Toute exception levée par ArithmeticException peut également être gérée par la classe Exception. Ainsi, le bloc catch d'ArithmeticException n'aura jamais une chance d'être exécuté, ce qui le rend redondant. D'où l'erreur de compilation.

Bloquer enfin Java

Le bloc finally est exécuté indépendamment du déclenchement d'une exception dans le bloc try. Il est facultatif à utiliser avec un bloc try.

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

Dans le cas où une exception est déclenchée dans le bloc try, le bloc finally est exécuté après l'exécution du bloc catch.

Exemple

Étape 1) Copiez le code suivant dans un éditeur.

class JavaException {public static void main(String args[]){try{int d = 0;int n =20;int fraction = n/d;}catch(ArithmeticException e){System.out.println("In the catch block due to Exception = "+e);}finally{System.out.println("Inside the finally block");}}}

Étape 2) Enregistrez, compilez et exécutez le code.

Étape 3) Sortie attendue. Enfin, le bloc est exécuté même si une exception est déclenchée.

Étape 4) Modifiez la valeur de la variable d = 1. Enregistrez, compilez et exécutez le code et observez la sortie.

Résumé :

  • Une exception est une erreur d'exécution qui interrompt le déroulement normal de l'exécution du programme. Une interruption pendant l'exécution du programme est appelée erreur ou exception.
  • Les erreurs sont classées en deux catégories
    • Erreurs de compilation - Erreurs de syntaxe, erreurs sémantiques
    • Erreurs d'exécution - Exception
  • Un programme robuste doit gérer toutes les exceptions et continuer avec son flux normal d'exécution de programme. Java fournit une méthode de gestion exceptionnelle intégrée
  • Exception Handler est un ensemble de code qui gère une exception . Les exceptions peuvent être gérées en Java à l'aide de try & catch.
  • Try block : le code normal passe sur ce bloc.
  • Blocage de capture : s'il y a une erreur dans le code normal, il ira dans ce bloc