Dator > vad är en null-pekare undantag ?

  • vad är en null-pekare undantag ?


  • Varje Java -programmerare skriver så småningom ett program som producerar " NullPointerExceptions " felmeddelande. Det är särskilt kryptiska till dem som börjar sin programplanering karriär genom att lära sig Java, som inte utsätter programmerare till begreppet en pekare e Java -programmerare skriver så småningom ett program som producerar " NullPointerExceptions " felmeddelande. Det är särskilt kryptiska till dem som börjar sin programplanering karriär genom att lära sig Java, som inte utsätter programmerare till begreppet en pekare

    Du behöver : .
    textredigerare som Anteckningar

    Pekare

    En pekare är en datavetenskap term för en variabel som , istället för att hålla lite information , har en adress till var informationen finns i en dators minne . Ni kan föreställa er variabeln som en skylt som "poäng " om var informationen finns . I språk som C + + , har programmeraren att göra ett uttryckligt val om huruvida en viss variabel kommer att hålla information som direkt eller kommer istället hålla en pekare till information och detta val kan ha en djupgående effekt på effektiviteten av programmet . Till exempel, om en viss klass har ett par megabyte värde av information som måste vidarebefordras till en funktion, är det mycket effektivare att ge funktionen en pekare än att kopiera all information direkt .

    Java reservdelar programmerare detta dilemma och buggar det kan producera genom att dölja tips från programmeraren .

    Null

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

    String s ;
    s=new String () ;

    Efter den första raden är klar , "s "är lika till null . Efter den andra raden är klar , "s" är lika med en tom sträng.

    Null Pekare

    Även Java försök att dölja pekpinnar från programmerare , finns det ett tillfälle, då den inte kan göra det . Alla klasser är faktiskt pekare till minnesplatser där uppgifter för klassen kan hittas . Detta gör det snabbare när klasser måste skickas in och ut funktioner . Men i exemplet ovan , efter den första raden körs , har en pekare avsatts för " s ", men inga data har skapats . " s " har inget minne som reserverats för det , så det är en " null-pekare. "

    nollpekare Undantag

    Nu när du vet vad en null-pekare är , betrakta följande två kodrader :

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

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

    Exempel

    De 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 . Men beakta 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 annan plats i programmet och skriver ut den till skärmen . Men vad händer om personen som kör funktion som skickas är en sträng som inte var riktigt initierats ? En NullPointerException skulle kastas .

    Avlusa och förhindra

    Det första steget för att förebygga NullPointerExceptions är att se till att ny klass objekt alltid är korrekt initierad. Men det är ingen perfekt, så det andra steget är att ta för vana att utföra uppgifter polisarbete för funktioner . Inkommande data bör alltid betraktas som opålitliga , så följande ändring skulle 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 Åtgärden 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 ge användaren en ful och kryptiska felmeddelandet .


Previous:nothing Next:hur man hanterar en null pekare undantag i Java





Relaterade artiklar


  • hur man använder konvertera funktion för datumformat
  • hur man använder Visual C + + debugger
  • hur man lär sig t - sql online
  • hur du aktiverar funktionen print screen med hjälp av JavaScript
  • hur man skapar en XSD från en befintlig XML-
  • hur man fyller en VB kombinationsruta med systemtypsnitt
  • hur man skapar en asp.net webbsida
  • nackdelarna med java applets
  • hur man dela upp en sträng i C
  • hur man använder rullningslisten med listboxen i Visual Basic 6.0