|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    Vad är ett Null Pointer Exception

    ? Varje Java programmerare småningom skriver ett program som producerar " NullPointerExceptions " felmeddelande. Det är särskilt kryptisk för dem som börjar sin programmering karriär genom att lära sig Java , som inte utsätter programmerare att begreppet en pekare . Pekare

    En pekare är en datavetenskap term för en variabel som , i stället för att hålla en bit av information , har en adress till var informationen kan hittas i en dators minne . Ni kan föreställa er den variabel som en vägvisare som "pekar " till var informationen kan hittas . I språk som C + + , har programmeraren att göra ett uttryckligt beslut om huruvida en viss variabel kommer att hålla informationen direkt eller kommer i stället att hålla en pekare till information och detta val kan ha en djupgående inverkan på effektiviteten i programmet . Till exempel, om en viss klass har några megabyte värde av information som ska föras in i en funktion , är det mycket effektivare att ge funktionen en pekare än att kopiera all information direkt .

    Java reservdelar programmerare detta dilemma och buggar kan producera genom att gömma pekare från programmeraren . Addera Null

    Null är en annan speciell term i datavetenskap . Den hänvisar till en variabel som bokstavligen inte innehåller någon information . Tills viss information tilldelas det , det sägs vara lika med noll . Till exempel i följande kod :

    String s , s = new String ( ) ;

    Efter den första linjen är klar , " s " är lika med noll . Efter den andra linjen är klar , " s " är lika med en tom sträng .
    Null Pekare

    Även Java försöker dölja pekare från programmeraren , det finns en instans när det inte kan göra det . Alla klasser är faktiskt pekare till minnesplatser där data för klassen kan hittas . Detta gör det snabbare när klasser måste kunna passera in och ut ur funktioner . Men i exemplet ovan , efter den första raden körs , har en pekare avsatts för " s ", men inga uppgifter har skapats . " s " har inget minne avsatt för det , så det är en " null pekare . "
    nollpekare Undantag

    Nu när du vet vad en null- pekare är Tänk på följande två kodrader :

    String s; s.charAt ( 0 ) , //Hämta det första tecknet i strängen

    koden ber om det första tecknet . en sträng objekt som helt enkelt inte existerar . Med andra ord är det ber om det omöjliga. Så snart detta sker , inser Java problemet och kastar en " NullPointerException " för att låta användaren eller programmeraren vet att något har gått fel .
    Exempel

    flesta Java programmerare skulle aldrig göra ovanstående misstag: de vet föremål som strängar måste initieras med den " nya " kommandot . Dock anser följande funktion :

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

    Inledningsvis ser denna kod böterna: Funktionen tar emot en sträng från någon annanstans i programmet och skriver ut den på skärmen . Men vad händer om den personen som kör funktionen skickas en sträng som inte var ordentligt initierats ? En NullPointerException skulle kastas . Felsökning och förebygga

    Det första steget för att förhindra NullPointerExceptions är att säkerställa att nya klassobjekt är alltid korrekt initieras Addera . Men ingen är perfekt , så det andra steget är att komma in i vanan att utföra uppgifter polisarbete för funktioner . Inkommande data alltid bör behandlas som opålitliga , så följande ändringar kan göras :

    public boolean print ( String s ) { try { System.out.println (s ) , return true ; //Låt resten av programmet vet operationen var lyckad } catch ( NullPointerException e ) {return false; . . //Låt resten av programmet vet operationen misslyckades } }

    fördelen med denna proaktiva strategi är att resten av programmet kan skrivas att bedöma hur allvarligt problemet är , snarare än omedelbart misslyckas och ger användaren en ful och kryptiskt felmeddelande .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur utdata i XML- strängar på Android
    ·Lägga JAVA_HOME
    ·Hur du formaterar kolumner i Java
    ·Java Kan du inte hitta symbol Metod Out
    ·Hur man anropa en metod som returnerar en sträng i Jav…
    ·Avancerad Java Ämnen
    ·Tutorial på Java Logging API
    ·Java hashCode för Boolean Typer
    ·Hur man lämna kommentarer i Java Code
    ·Hur att upptäcka om en viss Substring existerar i en s…
    Utvalda artiklarna
    ·Konvertera ett datum till ett UNIX Tidsstämpel PHP
    ·Oracle Business Intelligence-verktyg
    ·Hur man skriver en textruta till en fil C
    ·MySQL Integer : Signerad Vs . Unsigned
    ·Hur man gör en kolumn på en GridView i en droppe list…
    ·Ställa Focus till ASP.NET -kontroller
    ·Hur gör jag Float Script Typer
    ·Vad innebär Operator ^ i Java
    ·PHP Flash Integration Tutorial
    ·Hur att rensa skärmen i Visual C
    Copyright © Dator Kunskap http://www.dator.xyz