Paano Lutasin ang java.lang.NullPointerException

Paano Lutasin Ang Java Lang Nullpointerexception



Sa mga programming language, ang pagkakaroon ng mga error ay nagbibigay-daan sa amin na magsagawa ng iba't ibang functionality nang naaangkop sa pamamagitan ng pag-prompt sa developer. Sa ganoong kaso, maaaring may mga pagkakataon kung saan maaaring harapin ng developer ang ' java.lang.NullPointerException 'sa isang partikular na' wala ” halaga habang nakikitungo sa maramihang data. Ang pagbubukod na ito ay kailangang pangasiwaan upang mai-streamline ang mga pagpapagana ng code.

Ang blog na ito ay magdedetalye sa mga paraan upang makayanan ang ' java.lang.NullPointerException ”.







Paano Lutasin ang “java.lang.NullPointerException”?

Ang ' java.lang.NullPointerException ” ay ibinabalik kapag ang isang reference variable ay na-invoke (o de-reference) at hindi tumutukoy sa anumang bagay.



Pagpapakita ng 'java.lang.NullPointerException'

Sa ibinigay na paglalarawan sa ibaba, makikita natin kung paano nangyayari ang tinalakay na pagbubukod:



String s = null;
customFunc ( s ) ;
static void customFunc ( String str ) {
System.out.println ( str.haba ( ) ) ;
}


Sa snippet ng code sa itaas:





    • Una, simulan ang isang string na may ' wala ” halaga.
    • Sa susunod na hakbang, i-invoke ang function customFunc() sa pamamagitan ng pagpasa sa ipinahayag na string bilang argument nito.
    • Pagkatapos nito, tukuyin ang isang function na pinangalanang ' customFunc() ” sa pamamagitan ng pagtukoy ng string na kailangang ipasa bilang parameter nito.
    • Sa kahulugan ng function, ibalik ang haba ng naipasa na string sa pamamagitan ng “ haba ” ari-arian.
    • Ang code na ito ay gagana na sa pamamagitan ng pagpasa ng ' wala ” na halaga sa function, ang tinalakay na pagbubukod ay itatapon:


Sa output sa itaas, mapapansin na ang ' NullPointerException 'ay itinapon sa pagtawag' wala ” bilang isang function argument.

Diskarte 1: Lutasin ang “java.lang.NullPointerException” Gamit ang “try…catch” na mga Pahayag

Ang ' subukan ' na pahayag ay tumutulong sa pagtukoy ng isang bloke ng code na kailangang masuri para sa mga error habang isinasagawa at ang ' mahuli ” na pahayag ay magkakabisa sa kaso ng isang nakatagpo na limitasyon sa try block. Mas partikular, ang ' java.lang.NullPointerException ” ay maaaring ibigay sa pamamagitan ng paglalapat ng nais na operasyon sa bloke na “subukan” at paglalagay ng posibleng pagbubukod sa bloke ng “catch”.



Syntax

subukan {
Ang bloke ng code upang subukan
}
mahuli ( Exception e ) {
Ang bloke ng code upang mahawakan ang nakaharap na pagbubukod sa ang try block
}


Halimbawa

Tingnan natin ang halimbawang nakasaad sa ibaba:

String s = null;
customFunc ( s ) ;
static void customFunc ( String str ) {
subukan {
System.out.println ( 'Unang karakter: ' + str.indexOf ( 0 ) ) ;
}
mahuli ( NullPointerException e ) {
System.out.println ( 'Itinapon ang NullPointerException!' ) ;
} }


Sa itaas na mga linya ng code:

    • Alalahanin ang mga tinalakay na paraan upang simulan ang isang “ wala ” value at i-invoke ang nakasaad na function sa pamamagitan ng pagpasa ng null value bilang argument nito.
    • Ngayon, gayundin, tukuyin ang isang function na pinangalanang ' customFunc() ” pagkakaroon ng string na ipapasa bilang parameter nito.
    • Pagkatapos nito, ilapat ang ' subukan ” pahayag upang kunin ang index ng tinukoy na karakter sa isang string sa pamamagitan ng “ indexOf() ” paraan.
    • Tandaan na ang ' subukan ” na pahayag ay maaaring isagawa kung ang string ay hindi null. Dahil ang halaga ay ' wala ”, kaya makakatagpo ng exception na hahawakan ng “ mahuli ” pahayag.

Output


Sa output sa itaas, makikita na ang tinukoy na pagbubukod ay ibinibigay ng ' mahuli ” pahayag at sa gayon ito ay itinapon, sa gayon ay nalutas ito.

Diskarte 2: Lutasin ang “java.lang.NullPointerException” Gamit ang “if/else” na Pahayag

Ang tinalakay na pagbubukod ay maaari ding ayusin sa pamamagitan ng ' kung hindi ” pahayag. Magagawa ito sa pamamagitan lamang ng pagsasagawa ng nais na operasyon sa ' kung ” pahayag at sa hindi nasisiyahang kundisyon, ibabalik ang isang eksepsiyon sa pamamagitan ng “ iba pa ” pahayag.

Syntax

kung ( cond ) {
Ang pahayag na isasagawa sa nasiyahang kondisyon i.e 'cond'
}
iba pa {
Ang pahayag na isasagawa sa hindi nasisiyahan 'kung' kundisyon.
}


Halimbawa

Dumaan sa sumusunod na halimbawa upang magkaroon ng pang-unawa sa pagharap sa pagbubukod:

String s = null;
customFunc ( s ) ;
static void customFunc ( String str ) {
kung ( str ! = null ) {
System.out.println ( 'Unang karakter: ' + str.indexOf ( 0 ) ) ;
}
iba pa {
System.out.println ( 'Itinapon ang NullPointerException!' ) ;
}
}


Ilapat ang mga hakbang na tinalakay sa ibaba tulad ng ibinigay sa code sa itaas:

    • Ulitin ang tinalakay na mga hakbang para sa pagsisimula ng null value at pag-invoke ng function sa pamamagitan ng pagpasa ng “ wala ” halaga bilang argumento nito.
    • Susunod, katulad na ipahayag ang function na ' customFunc() ” pagkakaroon ng tinukoy na parameter.
    • Ngayon, ilapat ang ' kung hindi ” pahayag na sa nasiyahang kondisyon sa “ kung ” pahayag, ang kaukulang bloke ay isinasagawa.
    • Sa kabilang kaso, ang ' iba pa ” block ay magkakabisa at itapon ang tinalakay na pagbubukod.
    • Tandaan na ang kondisyon sa ' kung ” na pahayag ay kapareho ng dating diskarte, at sa gayon ay napeke ito.

Output


Ganyan mo kakayanin ang' java.lang.NullPointerException ”.

Konklusyon

Ang ' java.lang.NullPointerException ” ay ibinabalik kapag ang isang reference na variable ay na-invoke o na-de-reference at hindi tumutukoy sa anumang bagay. Ang pagbubukod na ito ay maaaring pangasiwaan sa pamamagitan ng paglalagay nito sa ' subukan…huli ” pahayag na sa pagsasakatuparan ng “ subukan ” block, ang nahaharap na pagbubukod ay maaaring ibigay ng huli na bloke. Din ang ' kung hindi 'Ang pahayag ay maaaring gamitin upang malutas ang pagbubukod na ito sa pamamagitan ng paglalagay nito sa ' iba pa ” pahayag kung ang “ kung ” na pahayag ay nabigong maisakatuparan. Tinalakay ng blog na ito ang mga diskarte upang makayanan ang ' java.lang.NullPointerException ”.