Изузетак нулл показивача у Јави: примена и примери



Овај чланак ће вам пружити детаљно и свеобухватно знање о томе како Нулл Поинтер Екцептион ради у Јави са мноштвом примера.

Изузеци су потребни за несметано извођење кода и обавестите програмере да грешку треба решити. У овом чланку ћемо се фокусирати на Нулл Поинтер Екцептион у Јави следећим редоследом:

Шта је Нулл Поинтер Екцептион у Јави?





Изузетак нулл показивача у Јави је изузетак током извођења. У свету Јаве референци објекта додељује се посебна нулл вредност. Изузетак нулл показивача се уводи када програм покушава да користи референцу на објекат која има нулл вредност. Што може бити:

како претворити у бинарни у питхон-у
  • Позивању одређене методе из нултог објекта.
  • Да бисте приступили или изменили поље нултог објекта.
  • Узимајући у обзир дужину нулл, као да се ради о низу.
  • Док приступате или мењате слотове нултог објекта.
  • Бацање нуле као вредност за бацање.
  • Покушај синхронизације преко нултог објекта.

Зашто нам је потребна нулл вредност?



Нулл је јединствена вредност која се користи у Јави. Нулл се користи да покаже да референтној променљивој није додељена вредност. Примарна примена нуле лежи у примени структура података као што су повезане листе и стабла. Неке друге апликације укључују обрасце нултих објеката и појединачне обрасце. Узорак појединца наводи да се може покренути само један примерак класе и има за циљ пружање глобалне тачке приступа објекту.

Најбољи и једноставан начин за стварање барем једне инстанце класе је проглашавање свих конструктора приватним. Затим креирају јавни метод који враћа јединствену инстанцу класе.

// За употребу рандомУУИД функције. импорт јава.утил.УУИД импорт јава.ио. * цласс Синглетон {// Овде иницијализујемо вредности сингле и ИД на нулл. привате статиц Синглетон сингле = нулл привате Стринг ИД = нулл привате Синглетон () {/ * Нека буде приватна, како би се спречило стварање нових инстанци класе Синглетон. * / // Креирајте случајни ИД ИД = УУИД.рандомУУИД (). ТоСтринг ()} јавни статички Синглетон гетИнстанце () {иф (сингле == нулл) сингле = нев Синглетон () ретурн сингле} јавни Стринг гетИД () {ретурн тхис.ИД}} // шифра возачког програма јавна класа ТестСинглетон {публиц статиц воид маин (Стринг [] аргс) {Синглетон с = Синглетон.гетИнстанце () Систем.оут.принтлн (с.гетИД ())}} //

Излаз:



null-pointer

Горњи пример је статична инстанца класе синглетон. Инстанца се иницијализује највише једном унутар методе Инстанца гет Инстанце.

постдипломски сертификат вс мастер

Како избећи изузетак нулл показивача у Јави?

Да бисмо избегли изузетак нулл показивача у Јави, морамо бити сигурни да су сви објекти правилно иницијализовани пре него што их употребите. Када је референтна променљива декларисана, морамо проверити да објекат није нулл и такође Пре него што од објеката затражимо методе или поља. Следе неки проблеми са одговарајућим решењима за превазилажење тог проблема.

// програм за демонстрацију позивања методе // на нулл узрокује НуллПоинтерЕкцептион импорт јава.ио. * цласс ГФГ {публиц статиц воид маин (Стринг [] аргс) {// Иницијализација променљиве стринга са нулл вредношћу Стринг птр = нулл // Провера да ли је птр.екуалс нулл или добро функционише. пробајте {// Овај ред кода баца НуллПоинтерЕкцептион // јер је птр ништа ако (птр.екуалс ('гфг')) Систем.оут.принт ('Исто') елсе Систем.оут.принт ('Није исто')} цатцх (НуллПоинтерЕкцептион е) {Систем.оут.принт ('НуллПоинтерЕкцептион Цаугхт')}}}

Излаз:

Вођење провере аргумената методе

Увек имајте на уму да пре извршавања тела нове методе треба да осигурамо њене аргументе за нулл вредности и наставимо са извршавањем методе. Ако и само када су аргументи правилно проверени. Иначе, бациће „ИллегалАргументЕкцептион“ и позваће метод позивања да нешто није у реду са прослеђеним аргументима.

// програм за проверу да ли су параметри нулл или не пре // њиховог коришћења. импорт јава.ио. * цласс ГФГ {публиц статиц воид маин (Стринг [] аргс) {// Стринг с поставља празан низ и позива гетЛенгтх () Стринг с = '' три {Систем.оут.принтлн (гетЛенгтх (с)) )} цатцх (ИллегалАргументЕкцептион е) {Систем.оут.принтлн ('ИллегалАргументЕкцептион цатцх')} // Низ је постављен на вредност и позива гетЛенгтх () с = 'ГеексфорГеекс' покушај {Систем.оут.принтлн (гетЛенгтх (с)) )} цатцх (ИллегалАргументЕкцептион е) {Систем.оут.принтлн ('ИллегалАргументЕкцептион цатцх')} // Постављање с као нуле и позивање гетЛенгтх () с = нулл три {Систем.оут.принтлн (гетЛенгтх (с))} цатцх ( ИллегалАргументЕкцептион е) {Систем.оут.принтлн ('ИллегалАргументЕкцептион ухваћен')}} // Функција за враћање дужине низа с. Баца // ИллегалАргументЕкцептион ако је с нулл. јавни статички инт гетЛенгтх (Стринг с) {иф (с == нулл) баца нови ИллегалАргументЕкцептион ('Аргумент не може бити нулл') ретурн с.ленгтх ()}}

Излаз:

Употреба тернарног оператора

Тернарни оператор се користи да би се избегло НуллПоинтерЕкцептион. Логички израз се проверава и ако је израз тада истинит, враћа се вредност1, у супротном се враћа вредност2. Може се користити тернарни оператор за руковање нултим показивачима: Десна слика је одговарајући излаз.

типови података у мискл-у са примерима
// Јава програм који демонстрира да можемо користити тернарни оператор // како бисмо избегли НуллПоинтерЕкцептион. импорт јава.ио. * цласс ГФГ {публиц статиц воид маин (Стринг [] аргс) {// Иницијализација променљиве стринга са нулл вредношћу Стринг стр = нулл Стринг мессаге = (стр == нулл)? '': стр.субстринг (0,5) Систем.оут.принтлн (порука) стр = 'Едурека_Јава_Блог' порука = (стр == нулл)? '': стр.субстринг (0,5) Систем.оут.принтлн (порука)}}

Излаз:

Едурек

Овим смо дошли до краја Нулл Поинтер Екцептион у Јави. Надам се да имате идеју о Нулл Поинтер Екцептион-у.

Погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширених широм света. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА дизајниран је за студенте и професионалце који желе да буду Јава програмер. Курс је дизајниран да вам пружи почетну предност у Јава програмирању и обучи вас како за основне тако и за напредне Јава концепте, заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог блога „Нулл Поинтер Екцептион ин Јава“ и јавићемо вам се што је пре могуће.