Hibaüzenet: java.lang.NullPointerException - mit tegyek?
A fordító mindent ellenőrzi az írott programban, egy kivételével: futási kivételek. Ilyen kivétel például a NullPointerException, amely a Java programozási nyelv alapvető java.lang csomagjába tartozik.
Mikor dobja a fordító a java.lang.NullPointerException fájlt?
Kivételek gyakran fordulnak elő a teszt szakaszában. Ez különösen vonatkozik a NullPointerException-re, amelyet általában kezdőként tapasztalnak a programozás során. Pontosabban, ez egy változó, amely üres objektumra mutat. A hiba például a következő esetekben fordul elő:
- Amikor egy tömb eleméhez hozzáférnek, és az elemnek nincs értéke.
- Ha egy tömb hossza lekérdezésre kerül, amelynek értéke nulla.
- Ha egy objektum új operátor nélkül jött létre, és megpróbálnak műveleteket végrehajtani a referenciaváltozóval.
- Példánkban a távirányító gyakorlatilag a referencia változó (mutató), amely a valódi nyomtatóobjektumra mutat. Ez a változó olyan műveletek végrehajtására szolgál, mint például a hibaüzenetek nyomtatása a nyomtatóra, a tinta szint kiszámítása stb. Ha a távirányító üres tárgyra vagy objektumra mutat, a referencia változó értéke nulla.
A hibaüzenet kijavítása
A kivételek a Java alatt egy " próbálkozás {...} fogás {(kivétel e)} " blokkkal foghatók el. Ez a módszer azonban nem mindig szükséges, és fölösleges költségeket is eredményez. Sokkal jobb szem előtt tartani a következő tippeket:
- Ellenőrizze, hogy létrehozta-e az objektumát. Ha nem ez a helyzet, akkor hozza létre a szintaxissal: "mintaobjektum neve = új mintaobjektum (változók); "
- A hibakeresési módban soronként ellenőrizheti a kódot, és megnézheti a közbenső eredményeket. Ügyeljen arra, hogy ne írja felül a létrehozott objektumot, vagy NULL értékkel mentse el. Ez azt jelenti, hogy az objektum már nem érhető el, és további objektumparancsok váltják ki a hibát.
- Tipp: Ha gyakran változtatja meg az objektumot, szokjon meg ellenőrizni az objektumot alapvető változtatások előtt és után egy if-lekérdezés segítségével (" if (példa objektum ! = NULL) {...} ").
A következő gyakorlati tippben elmagyarázzuk, hogyan lehet a Lambda kifejezéseket használni a Java-ban.