Maison > Java > javaDidacticiel > le corps du texte

Dans quels scénarios NullPointerException se produit-il en Java ?

WBOY
Libérer: 2023-06-25 08:55:55
original
1612 Les gens l'ont consulté

Java est un langage de programmation largement utilisé, et NullPointerException est l'une de ses exceptions. Elle indique qu'il existe une référence de pointeur nul dans le code. Lorsqu'il y a un appel de méthode sur un objet nul ou un accès à une propriété d'un objet nul dans le code, une exception NullPointerException est levée. Dans cet article, nous explorerons les scénarios dans lesquels NullPointerException se produit.

1. Effectuez un appel de méthode lorsque l'objet est nul

Lorsqu'un objet est nul, si une méthode est appelée dessus, une NullPointerException sera levée. Par exemple, l'extrait de code suivant :

String str = null;
System.out.println(str.length());
Copier après la connexion

Puisque str est null, lorsque l'instruction str.length() est exécutée, une NullPointerException sera levée. Afin d'éviter cette situation, nous devons juger l'objet avant d'appeler la méthode, comme indiqué ci-dessous :

String str = null;
if(str != null){
    System.out.println(str.length());
}
Copier après la connexion

2. Effectuez des opérations sur un tableau lorsque le tableau est nul

Lorsqu'un tableau est nul, si vous effectuez des opérations sur un tableau dessus. (Comme l'accès aux éléments du tableau, l'évaluation de la longueur du tableau, etc.), NullPointerException sera également levée. Par exemple, l'extrait de code suivant :

int[] arr = null;
System.out.println(arr.length);
Copier après la connexion

Puisque arr est nul, une NullPointerException sera levée lorsque l'instruction arr.length est exécutée. Afin d'éviter cette situation, nous devons juger le tableau avant d'accéder aux éléments du tableau, comme indiqué ci-dessous :

int[] arr = null;
if(arr != null){
    System.out.println(arr.length);
}
Copier après la connexion

3. Une exception de pointeur nul se produit dans try-catch

Dans le bloc try-catch, si un pointeur nul se produit. se produit une exception, si l'objet pointeur nul est utilisé directement sans traitement dans le bloc catch, une exception NullPointerException sera également levée. Par exemple, l'extrait de code suivant :

try {
    String str = null;
    System.out.println(str.length());
} catch (Exception e) {
    String errorMsg = e.getMessage();
    System.out.println(errorMsg.length());
}
Copier après la connexion

Puisqu'une exception de pointeur nul se produit dans le bloc try, lorsque l'instruction System.out.println(errorMsg.length()) dans le bloc catch est exécutée, une exception NullPointerException sera levée . Nous pouvons juger du message d'erreur dans le bloc catch, comme indiqué ci-dessous :

try {
    String str = null;
    System.out.println(str.length());
} catch (Exception e) {
    String errorMsg = e.getMessage();
    if(errorMsg != null){
        System.out.println(errorMsg.length());
    }
}
Copier après la connexion

4. Utilisation d'objets non initialisés

Si un objet non initialisé est opéré, une NullPointerException sera également levée. Par exemple, l'extrait de code suivant :

String str;
System.out.println(str.length());
Copier après la connexion

Comme str n'a pas été initialisé, lorsque l'instruction str.length() est exécutée, une NullPointerException sera également levée. Afin d'éviter cette situation, nous devons initialiser l'objet avant de l'utiliser, comme indiqué ci-dessous :

String str = "";
System.out.println(str.length());
Copier après la connexion

Résumé :

Pour les exceptions NullPointerException, nous devons prêter attention aux problèmes dans les scénarios ci-dessus et les gérer en conséquence pour éviter Une référence de pointeur nul apparaît dans le code. Dans le même temps, nous pouvons également utiliser des classes d'outils (telles que la classe StringUtils dans la bibliothèque apache-commons-lang3) pour éviter l'apparition d'exceptions de pointeur nul.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!