Tutoriels Java

Java ACCUEIL Introduction à Java Java Démarrer Syntaxe Java Commentaires Java Variables Java Types de données Java Conversion de type Java Opérateurs Java Chaînes Java Mathématiques Java Booléens Java Java Si... Sinon Commutateur Java Java While Boucle Java pour la boucle Java Pause/Continuer Tableaux Java

Méthodes Java

Méthodes Java Paramètres de méthode Java Surcharge de méthode Java Portée Java Récursivité Java

Cours Java

POO Java Classes/Objets Java Attributs de classe Java Méthodes de classe Java Constructeurs Java Modificateurs Java Encapsulation Java Paquets Java/API Héritage Java Polymorphisme Java Classes internes Java Abstraction Java InterfaceJava Énumérations Java Entrée utilisateur Java Data Java Java ArrayList Liste liée Java Java HashMap Jeu de hachage Java Itérateur Java Classes d'encapsulation Java Exception Java Java RegEx Fils Java Java Lambda

Gestion des fichiers Java

Fichiers Java Java créer/écrire des fichiers Fichiers de lecture Java Java supprimer des fichiers

Comment Java

Additionner deux nombres

Référence Java

Mots clés Java Méthodes de chaîne Java Méthodes mathématiques Java

Exemples Java

Exemples Java Compilateur Java Exercices Java Quizz Java Certificat Java


Exceptions Java - Essayer... Attraper


Exception Java

Lors de l'exécution du code Java, différentes erreurs peuvent survenir : erreurs de codage faites par le programmeur, erreurs dues à une mauvaise saisie ou autres choses imprévisibles.

Lorsqu'une erreur se produit, Java s'arrête normalement et génère un message d'erreur. Le terme technique pour cela est : Java lèvera une exception (lancera une erreur).


Java essayer et attraper

L' tryinstruction vous permet de définir un bloc de code à tester pour les erreurs pendant son exécution.

L' catchinstruction vous permet de définir un bloc de code à exécuter, si une erreur se produit dans le bloc try.

Les mots-clés tryet catchvont par paires :

Syntaxe

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

Considérez l'exemple suivant :

Cela générera une erreur, car myNumbers[10] n'existe pas.

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

La sortie ressemblera à ceci :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

Si une erreur se produit, nous pouvons utiliser try...catchpour intercepter l'erreur et exécuter du code pour la gérer :

Exemple

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

La sortie sera :

Something went wrong.

Enfin

L' finallyinstruction vous permet d'exécuter du code, après try...catch, quel que soit le résultat :

Exemple

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

La sortie sera :

Something went wrong.
The 'try catch' is finished.


Le mot-clé lancer

L' throwinstruction vous permet de créer une erreur personnalisée.

L' throwinstruction est utilisée avec un type d'exception . Il existe de nombreux types d'exceptions disponibles en Java : ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, etc :

Exemple

Lancer une exception si l' âge est inférieur à 18 ans (imprimer "Accès refusé"). Si l'âge est de 18 ans ou plus, écrivez "Accès accordé":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

La sortie sera :

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

Si l' âge était de 20 ans, vous n'obtiendriez pas d'exception :

Exemple

checkAge(20);

La sortie sera :

Access granted - You are old enough!

Testez-vous avec des exercices

Exercer:

Insérez les parties manquantes pour gérer l'erreur dans le code ci-dessous.

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}