Kļūdas ziņojums: java.lang.NullPointerException - ko darīt?
Kompilators pārbauda rakstisko programmu visam, izņemot vienu: izpildlaika izņēmumiem. Šāds izņēmums ir, piemēram, NullPointerException, kas Java programmēšanas valodā pieder pie būtiskās paketes java.lang.
Kad kompilators izmet java.lang.NullPointerException?
Izņēmumi bieži rodas testa posmā. Tas jo īpaši attiecas uz NullPointerException, kas parasti tiek uzskatīts par iesācēju, kad runa ir par programmēšanu. Precīzāk, tas ir mainīgais, kas norāda uz tukšu objektu. Piemēram, kļūda rodas šādos gadījumos:
- Kad tiek izmantots masīva elements un elementam nav vērtības.
- Jautājot par masīva garumu, kura vērtība ir nulle.
- Ja objekts tika izveidots bez jaunā operatora un tiek mēģināts veikt darbības ar atsauces mainīgo.
- Mūsu piemērā tālvadības pults ir praktiski atsauces mainīgais (rādītājs), kas norāda uz reālo printera objektu. Šis mainīgais tiek izmantots, lai veiktu tādas darbības kā kļūdu ziņojumu izvade printerim, tintes līmeņa aprēķināšana utt. Ja tālvadības pults norāda uz tukšu objektu vai uz nevienu objektu, atsauces mainīgajam ir vērtība nulle.
Kā novērst kļūdas ziņojumu
Izņēmumus var noķert Java, izmantojot bloķēt " izmēģināt {...} noķert {(izņēmums e)} ". Tomēr šī metode ne vienmēr ir nepieciešama, un tā rada arī papildu izmaksas. Labāk ir atcerēties šādus padomus:
- Pārbaudiet, vai jūsu objekts ir izveidots. Ja tas tā nav, izveidojiet to, izmantojot komandu sintakse " parauga objekta nosaukums = jauns parauga objekts (mainīgie); ".
- Izmantojot atkļūdošanas režīmu, jūs varat pārbaudīt savu kodu pa rindām un apskatīt starpposma rezultātus. Pārliecinieties, ka nepārrakstāt izveidoto objektu vai nesaglabājat to ar NULL vērtību. Tas nozīmē, ka objekts vairs nav pieejams un kļūdas izsauc papildu objekta komandas.
- Padoms. Ja bieži maināt savu objektu, pieradiet pārbaudīt objektu pirms un pēc būtiskām izmaiņām, izmantojot vaicājumu if (" if ( objekta piemērs! = NULL) {...} ").
Nākamajā praktiskajā padomā mēs izskaidrosim, kā jūs varat lietot Lambda Expressions Java.