| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Java >> Content
    Qu'est-ce qu'une exception de pointeur nul
    ? Chaque programmeur Java finalement écrit un programme qui génère le message d'erreur " NullPointerExceptions " . Il est particulièrement énigmatique pour ceux qui commencent leur carrière de programmation par apprentissage Java, qui n'expose pas les programmeurs à la notion d' un pointeur. Pointeurs

    Un pointeur est un terme d'informatique pour une variable qui , au lieu de tenir un bit d'information , est titulaire d'une adresse à l'endroit où cette information peut être trouvée dans la mémoire d'un ordinateur. Vous pouvez imaginer la variable comme un poteau indicateur qui «points» à l'endroit où l'information peut être trouvée. Dans les langages comme C + + , le programmeur doit faire un choix explicite quant à savoir si une variable donnée tiendra les informations directement ou participera plutôt à un pointeur à l'information et ce choix peut avoir un effet profond sur l'efficacité du programme. Par exemple, si une classe donnée détient quelques mégaoctets valeur de l'information qui doit être communiquée dans une fonction, il est beaucoup plus efficace pour donner la fonction de pointeur que de copier toutes les informations directement .

    Java pièces de rechange programmeurs ce dilemme et les bugs il peut produire en cachant des pointeurs du programmeur.
    Null

    Null est un autre terme spécifique en informatique . Il fait référence à une variable qui contient littéralement aucune information. Jusqu'à ce que certaines informations lui est attribué , il est dit être égale à nulle. Par exemple, dans le code suivant :

    String s ; s = new String () ;

    Après la première ligne est terminée, "s" est égal à null. Après la deuxième ligne est terminée, "s" est égal à une chaîne vide.

    Null pointeurs

    Bien que Java tente de cacher pointeurs du programmeur, il ya un cas où il ne peut pas le faire. Toutes les classes sont en fait des pointeurs vers des emplacements de mémoire où les données de la classe peuvent être trouvées. Cela le rend plus rapide lorsque les classes doivent être passés dans et hors de fonctions . Cependant , dans l'exemple ci-dessus, après la première ligne est exécutée, un pointeur a été mis de côté pour « s », mais pas de données a été créée. "s" n'a pas de mémoire réservée pour elle, il est donc un " pointeur NULL. "
    Null exceptions de pointeur

    Maintenant que vous savez ce qu'est un pointeur NULL est , considérons les deux lignes de code suivantes:

    string s ; s.charAt (0); //récupère le premier caractère de la chaîne

    le code est demandé pour le premier caractère d' . un objet chaîne qui n'existe tout simplement pas . En d'autres termes , il demande l' impossible. Dès que cela se produit, Java rend compte du problème et lance un " NullPointerException " pour permettre à l'utilisateur ou le programmeur savent que quelque chose s'est mal passé .
    Exemple

    plus les programmeurs Java n'auraient jamais faire l'erreur ci-dessus : ils savent objets comme les chaînes doivent être initialisés avec la commande "Nouveau " . Cependant, considérons la fonction suivante:

    print public void (String s) {System.out.println ( s) ; }

    Initialement , ce code a l'air bien : la fonction reçoit une chaîne de ailleurs dans le programme et affiche à l'écran . Toutefois, si la personne qui exécute la fonction envoyé est une chaîne qui n'a pas été correctement initialisé ? A NullPointerException serait jeté .
    Débogage et empêcher

    La première étape de la prévention NullPointerExceptions est de s'assurer que les nouveaux objets de classe sont toujours correctement initialisé. Cependant, personne n'est parfait, donc la deuxième étape consiste à prendre l'habitude d'effectuer données policières pour les fonctions. Les données entrantes doivent toujours être considérés comme indignes de confiance , donc la modification suivante peut être faite:

    print public void (String s) { try { System.out.println ( s) ; return true; //Laisser reposer du programme connaissent l'opération a réussi } catch ( NullPointerException e ) {return false; /.. /Laissez le reste du programme connaît l'opération a échoué }}

    l'avantage de cette approche proactive est que le reste du programme peut être écrit de juger à quel point le problème est grave , plutôt que d'échouer et donner à l'utilisateur un message d'erreur laid et énigmatique immédiatement .

    Previous :

    next :
      articles connexes
    ·Comment faire pour récupérer les propriétés MP3 Lik…
    ·Comment faire pour créer une oscillation application J…
    ·Comment dessiner un graphique circulaire en Java 
    ·Comparaison de la carte par rapport à la liste en Java…
    ·Développement de jeux en Java 
    ·Comment obtenir Fond Bouton dans Android 
    ·Comment cartographier Strings à une liste de chaînes 
    ·Comment faire pour effectuer des opérations de l'arbre…
    ·Comment vérifier l'historique Java dans Windows Vista 
    ·Comment faire pour supprimer les zéros dans récursivi…
      articles en vedette
    ·Comment calculer SHA1 pour une chaîne en C # 
    ·Comment formater une liste avec la valeur sélectionné…
    ·Comment ajouter le nouvel enregistrement dans Access 20…
    ·Comment télécharger et renommer les noms de fichiers …
    ·Comment faire pour s'aligner nombres décimaux Juste Ba…
    ·Comment détecter un navigateur Safari en JavaScript 
    ·Index Array Out of Bounds Exception en Java 
    ·Comment obtenir de nouvelles Enemies sur Game Maker 
    ·Comment formater Dates et heures Avec IOstream 
    ·Comment un fichier texte Lire en Python 
    Copyright © Connaissances Informatiques http://fr.wingwit.com