Felmeddelande: java.lang.NullPointerException - vad ska man göra?
Kompilatorn kontrollerar det skrivna programmet för allt utom ett: undantag för runtime. Ett sådant undantag är till exempel NullPointerException, som tillhör det viktiga paketet java.lang på programmeringsspråket Java.
När kastar kompilatorn java.lang.NullPointerException?
Undantag inträffar ofta under testfasen. Detta gäller särskilt NullPointerException, som vanligtvis stöter på nybörjare när det gäller programmering. Mer specifikt är det en variabel som pekar på ett tomt objekt. Till exempel inträffar felet i följande fall:
- När elementet i en matris öppnas och elementet inte har något värde.
- När du frågar längden på en matris vars värde är noll.
- Om ett objekt skapades utan den nya operatören och ett försök görs med operationer med referensvariabeln.
- I vårt exempel är fjärrkontrollen praktiskt taget referensvariabeln (pekaren) som pekar på det verkliga skrivarobjektet. Denna variabel används för att utföra operationer som att mata ut felmeddelanden till skrivaren, beräkna bläcknivåer osv. Om fjärrkontrollen pekar på ett tomt objekt eller till inget objekt har referensvariabeln värdet noll.
Hur du åtgärdar felmeddelandet
Undantag kan fångas under Java med ett " prov {...} catch {(Undantag e)} " -block. Men denna metod är inte alltid nödvändig och skapar även omkostnader. Det är bättre att ha följande tips i åtanke:
- Kontrollera om ditt objekt har skapats. Om detta inte är fallet, skapar du det med kommandosyntaxen " sample object name = new sample object (variables); ".
- Med felsökningsläge kan du kontrollera din kod rad för rad och visa mellanresultat. Se till att du inte skriver över ditt skapade objekt eller sparar det med ett NULL-värde. Detta innebär att objektet inte längre är tillgängligt och ytterligare objektkommandon utlöser felet.
- Tips: Om du ändrar ditt objekt ofta, vänja dig på att kontrollera ditt objekt före och efter grundläggande ändringar med en if-fråga (" if ( exempelobjekt ! = NULL) {...} ").
I nästa praktiska tips förklarar vi hur du kan använda Lambda Expressions i Java.