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 ”.