English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Comment corriger les exceptions dans le thread principal main en Java ?

Les exceptions sont des problèmes qui se produisent pendant l'exécution du programme (erreurs de temps d'exécution). Lorsqu'une exception se produit, le programme s'arrête brusquement et le code après la ligne d'exception ne sera jamais exécuté.

Exemple

import java.util.Scanner;
public class ExceptionExample {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Entrez le premier nombre : ");
      int a = sc.nextInt();
      System.out.println("Entrez le deuxième nombre : ");
      int b = sc.nextInt();
      int c = a/b;
      System.out.println("Le résultat est : "+c);
   }
}

Résultat de la sortie

Entrez le premier nombre:
100
Entrez le deuxième nombre:
0
Exception dans le thread "main" java.lang.ArithmeticException: / by zero
at ExceptionExample

Types d'exceptions

En Java, il y a deux types d'exceptions

  • Exception vérifiée - Les exceptions vérifiées sont des exceptions qui se produisent lors de la compilation, également appelées exceptions de compilation. Ces exceptions ne peuvent pas être ignorées simplement lors de la compilation. Les programmeurs doivent (traiter) ces exceptions.

  • Exception non vérifiée - Les exceptions non vérifiées sont des exceptions qui se produisent pendant l'exécution. Ces dernières sont également appelées exceptions de temps d'exécution. Elles incluent des erreurs de programmation, telles que des erreurs de logique ou une mauvaise utilisation de l'API. Les exceptions de temps d'exécution sont ignorées lors de la compilation.

Exception principale du thread

Exception en temps de execution/Le mode d'affichage des exceptions non vérifiées est“Exception du thread principal”,c'est-à-dire, à chaque fois qu'une exception en temps de execution se produit, le message commence par cette ligne.

Exemple

Dans le programme Java suivant, nous avons un tableau de taille5et essaye d'accéder à la6éléments, ce qui génère ArrayIndexOutOfBoundsException.

public class ExceptionExample {
   public static void main(String[] args) {
      //Création d'un tableau de taille5du tableau d'entiers
      int inpuArray[] = new int[5];
      //Remplir l'array
      inpuArray[0] = 41;
      inpuArray[1] = 98;
      inpuArray[2] = 43;
      inpuArray[3] = 26;
      inpuArray[4] = 79;
      //Accès à l'index supérieur à la taille de l'array
      System.out.println(inpuArray[6]);
   }
}

Exception en temps de execution

Exception dans le thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at MyPackage.ExceptionExample.main(ExceptionExample.java:14)

Exemple

Dans l'exemple suivant, nous essayons de créer un tableau en utilisant un nombre négatif comme valeur de taille, ce qui génère NegativeArraySizeException.

public class Test {
   public static void main(String[] args) {
      int[] intArray = new int[-5];
   }
}

Exception en temps de execution

Lors de l'exécution, ce programme génère une exception en temps de execution, comme suit.

Exception dans le thread "main" java.lang.NegativeArraySizeException
at myPackage.Test.main(Test.java:6)

Gérer les exceptions en temps de execution

Vous pouvez gérer les exceptions en temps de execution et éviter une terminaison anomale, mais il n'y a pas de programme spécifique pour les exceptions en temps de execution en Java, cela dépend de l'exception, du type de code à modifier spécifiquement.

Par exemple, si vous devez corriger ArrayIndexOutOfBoundsException dans le premier programme ci-dessus, vous devez supprimer/Modifier la ligne d'accès à l'index de l'array au-delà de sa taille.

Exemple

public class ExceptionExample {
   public static void main(String[] args) {
      //Création d'un tableau d'entiers de taille 5
      int inpuArray[] = new int[5];
      //Remplir l'array
      inpuArray[0] = 41;
      inpuArray[1] = 98;
      inpuArray[2] = 43;
      inpuArray[3] = 26;
      inpuArray[4] = 79;
      //Accès à l'index supérieur à la taille de l'array
      System.out.println(inpuArray[3]);
   }
}

Résultat de la sortie

26