Maison >Java >javaDidacticiel >Exception d'objet nul en Java - comment résoudre java.lang.IllegalArgumentException ?

Exception d'objet nul en Java - comment résoudre java.lang.IllegalArgumentException ?

王林
王林original
2023-06-25 18:57:323203parcourir

Une exception très courante en Java est IllegalArgumentException, également connue sous le nom d'« exception d'objet nul ». Cette exception se produit généralement lorsque les développeurs tentent d'utiliser un objet nul pour appeler une méthode ou effectuer une opération. Cet article explorera les causes de cette exception et comment y remédier.

  1. Comprendre l'exception d'objet nul

Le compilateur Java lance lorsque nous essayons d'appeler une méthode sur un objet nul ou d'effectuer une opération en utilisant le objet IllegalArgumentException. Par exemple, si nous essayions d'utiliser une valeur nulle dans une chaîne formatée, le code pourrait ressembler à ceci :

String str = null;
String.format("Value is : %s", str );

Dans cet exemple, str est vide et nous essayons d'appeler la méthode format avec elle comme paramètre. Par conséquent, le compilateur Java lancera une IllegalArgumentException indiquant que nous essayons d'utiliser un modèle de chaîne vide pour le formatage.

  1. Pourquoi IllegalArgumentException est-il lancé ?

La raison pour laquelle Java lève cette exception est que nous avons transmis un paramètre non valide dans le code. Le paramètre ne peut pas être utilisé dans une méthode ou une opération car la valeur du paramètre n'est pas conforme à son type ou à sa forme requis. Dans l'exemple ci-dessus, la méthode de format attendait un type de paramètre non nul, mais nous avons essayé d'utiliser une valeur nulle comme paramètre.

Dans d'autres cas, les paramètres transmis dans le code peuvent ne pas être conformes à la plage ou à la limite spécifiée. Par exemple, si nous essayons de transmettre un nombre négatif à la méthode abs, le compilateur Java lancera une IllegalArgumentException :

int num = -10;
Math.abs(num);# 🎜🎜 #

Dans cet exemple, le compilateur Java lève une exception car nous essayons d'appeler la méthode abs avec un nombre négatif, ce qui nécessite un entier positif.

    Comment gérer IllegalArgumentException ?
Lorsque Java lance IllegalArgumentException, nous pouvons utiliser certaines méthodes pour résoudre le problème. Voici quelques solutions :

(1) Vérifiez si le code est correct et assurez-vous que tous les paramètres sont transmis correctement. Excluez les paramètres non valides tels que les valeurs nulles.

(2) Utilisez l'opération null dans le code pour éviter de transmettre des objets vides. Par exemple, utilisez une instruction if pour déterminer si l'objet est vide. S'il est vide, aucune opération ne sera effectuée.

(3) Utilisez des blocs try-catch dans le code pour intercepter les exceptions IllegalArgumentException. Gérez-le en conséquence et laissez l’exécution se dérouler sans problème. Voici un exemple de bloc try-catch :

try {

 //执行代码,可能会抛出IllegalArgumentException异常

}catch (IllegalArgumentException ex) {

 // 异常处理代码

}#🎜 🎜## 🎜🎜#(4) En Java, nous pouvons utiliser des assertions pour éviter de lancer IllegalArgumentException. Les assertions sont un mécanisme utilisé lors du débogage et des tests pour vérifier que le code est correct. Voici un exemple d'utilisation de assert :

int value = -2;

assert value > 0 : "La valeur doit être positive";

Math.abs(value) ;


Dans cet exemple, nous utilisons le mot-clé assert pour vérifier si la valeur de la variable est un nombre positif. Si la valeur est inférieure ou égale à zéro, Java lèvera une exception AssertionError, décrivant le message d'assertion dans le code, c'est-à-dire "La valeur doit être positive".

Résumé :

En Java, nous rencontrons souvent IllegalArgumentException, qui est ce qu'on appelle l'exception d'objet nul. Cette exception est généralement provoquée lorsque nous essayons de transmettre un objet nul ou des paramètres non valides à une méthode ou une opération. Nous pouvons prendre certaines mesures pour éviter l'apparition de cette exception, comme l'utilisation d'opérations nulles, de blocs try-catch, d'instructions assert, etc. Dans le même temps, lorsqu’une exception se produit, nous devons la gérer correctement pour garantir que le code s’exécute correctement et éviter de graves problèmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn