JavaRush /Blog Java /Random-FR /Traduction : 6 exceptions Java qui affligent les nouveaux...
profeg
Niveau 18

Traduction : 6 exceptions Java qui affligent les nouveaux arrivants sur Java.

Publié dans le groupe Random-FR

6 exceptions Java qui hantent les débutants Java.

(Original) (Je suis nouveau en Java et en anglais, je serai donc heureux de recevoir des critiques et de l'aide) Avant et aujourd'hui, je rencontre de nombreux débutants en Java qui ont un problème avec quelques exceptions courantes que je dois expliquer une fois de plus. Je pense que d'autres développeurs Java senior ont le même problème en essayant d'aider les débutants à gérer ces exceptions. Ainsi, j'ai écrit cet article pour mon propre développement. N'hésitez pas à commenter cet article ou à ajouter des exceptions à la liste ci-dessous.
1. NoClassDefFoundError
C'est l'une de ces exceptions, avec un message du type « Exception in thread « main » NoClassDefFoundError » , que la plupart des nouveaux développeurs Java rencontrent dans le monde de la programmation Java. Un débutant écrit un programme qui affiche « Bonjour tout le monde ! », va sur la ligne de commande, tape « java… », appuie sur Entrée et BAM ! =). Et trouver comment faire en sorte que le programme imprime « Hello world ! » sur le moniteur, cela prend un certain temps. NoClassDefFoundError se produit lorsque la machine virtuelle Java (JVM) tente d'accéder à une classe au moment du démarrage et que la classe n'est pas trouvée, même si la même classe a été trouvée au moment de la compilation. Le plus souvent, cette exception se produit lorsque vous essayez d'exécuter un programme à l'aide de la commande "java" et que le chemin de classe n'est pas défini correctement. Voici une description des raisons pour lesquelles cette exception se produit.
  • La classe n'est pas disponible dans -classpath.
  • La variable d'environnement CLASSPATH a été remplacée. Vous pouvez vérifier sa présence et son exactitude à l'aide de la commande Windows « set ».
La solution au problème est décrite plus en détail ici.
De plus, vous devez comprendre la différence entre la variable d'environnement CLASSPATH et la clé d'interpréteur -classpath. Les professionnels ne recommandent pas d'utiliser CLASSPATH. Le meilleur moyen est de transmettre la clé -classpath à l'interpréteur.
2.ClassNotFoundException _
ClassNotFoundException est une autre exception qui devient un cauchemar pour un débutant dès qu'il commence à programmer. Il est intéressant de noter que le développeur Java moyen est souvent confus entre les exceptions ClassNotFoundException et NoClassDefFoundError . Et ainsi, la différence entre ces deux exceptions reste l'une des questions les plus fréquemment posées lors des entretiens pour le poste Junior . ClassNotFoundException se produit lorsque la JVM tente de charger une classe spécifique et ne la trouve pas dans le chemin de classe. L'un des endroits courants où un nouveau développeur Java le rencontre pour la première fois est la connexion à une base de données à l'aide de la bibliothèque JDBC. Là, nous allons essayer de charger le pilote en utilisant un code tel que Class.forName("JDBCdriver"). Un bon article sur ClassNotFoundException est ici . Essayer de comprendre le concept des Java Classloaders est la méthode la plus efficace pour résoudre ce problème. Vous pouvez lire comment configurer le chemin de classe Java dans un environnement Win/Unix . Comme indiqué dans la documentation Java , une exception se produit dans les cas suivants :
  • Vous essayez de charger une classe à l’aide de la méthode Class.forName et le fichier .class ne se trouve pas dans le chemin de classe. Il s’agit du scénario le plus courant des trois répertoriés ici.
  • Lorsque le chargeur de classe tente de charger une classe à l’aide de loadClass.
  • Lorsque le chargeur de classe tente de charger une classe à l'aide de findSystemClass.
3. Exception NullPointer
Cette exception est plus facile à comprendre pour les débutants que les deux premières. De plus, cette exception est facilement identifiable car lorsqu'elle se produit, le message concernant l'exception indique le numéro de ligne du programme où elle s'est produite. Cette exception se produit lorsque la JVM tente d'accéder à un objet ou tente d'appeler une méthode sur un objet et reçoit une valeur null au lieu d'une référence à l'objet. Le Java Doc indique également les raisons suivantes :
  • Accéder ou modifier une méthode sur un objet non valide. (c'est-à-dire qu'au lieu d'une référence à un objet JVM, il devient nul)
  • Obtenir la longueur d'un tableau lorsqu'il n'est pas valide. (non initialisé par exemple)
  • Une tentative d'accès à un élément de tableau de type Objet inexistant a été effectuée. (c'est-à-dire quand, au lieu d'une référence d'objet, l'élément du tableau contient null)
La méthode la plus simple pour éviter cette exception consiste à utiliser une vérification non NULL. Cependant, tôt ou tard, cela devient une pratique de développement Java et vous trouverez des vérifications non NULL partout. Il est intéressant de noter que l' insertion de vérifications non NULL partout n'est pas considérée comme un bon style de programmation . Et la principale raison d'utiliser la vérification non NULL est que le développeur souhaite transmettre un objet nul en cas d'échec ou d'erreur. Au lieu de cela, il s'agit d'une bonne pratique de programmation que les programmeurs devraient utiliser pour renvoyer un objet vide, plutôt qu'une valeur nulle , comme logique de base pour le comportement d'un programme en cas d'erreur. Cependant, adopter cette pratique de programmation est plus difficile qu’il n’y paraît.
Il y a un bon article à ce sujet sur notre ressource.
4. ClassCastException
Il s'agit d'une autre exception familière aux débutants, qui se produit lorsque vous essayez de convertir un objet en une classe qui n'en est pas une sous-classe. Encore une fois, c’est assez facile à comprendre, à identifier et simple à résoudre. Une façon d'éviter cette exception lorsque le type de l'objet est inconnu au moment de l'exécution consiste à utiliser « InstanceOf » pour vérifier que l'objet est une instance d'une classe particulière.
5. Exception ArrayIndexOutOfBounds
Cette exception est explicite et se produit lorsque la JVM tente d'accéder à un élément du tableau avec un index inexistant, tel que négatif (-1) ou supérieur ou égal à la taille du tableau. C'est assez simple à comprendre, à définir et à corriger . Par exemple, lors de la création d'une boucle, for (i = 0; i <= cmd_stack.length; i++) System.out.println(cmd_stack[i]); une exception se produit car dans le tableau, les index commencent à 0, la méthode length renvoie le nombre d'éléments et le nombre est supérieur de 1 à la valeur du dernier index. Utilisation correcte for (i = 0; i < cmd_stack.length; i++) System.out.println(cmd_stack[i]);
6. Exception d'argument illégal
Cette exception est moins courante et assez facile à comprendre, identifier et résoudre. Cela se produit lorsque la JVM tente d'appeler une méthode inexistante ou une méthode avec un argument non valide.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION