ЭЭМПрограммалоо

Java: өзгөчө жана аларды колдонуу

Ар бир программа туруктуу иштей турган булак коду түшө гана болсо, күтүлбөгөн жагдайларга алып келиши мүмкүн эч кандай шарт жок. мүмкүн кемчилик кармоо жараяны программалоо этапта ишке ашырылат. Бул үчүн, иштеп чыгуучу бардык күтүлүүчү жыйынтыктар эске алат, жана ал програм иштешине тоскоолдук, же анын кыйрашына алып келиши мүмкүн эмес, ошондуктан ката таасирин чектөөгө аракет.

Эгер өзгөчө мамилени керек болгондо

Java-жылы, өзгөчө туура эмес колдонуучу, ресурс же капыстан тармак өчүрүү программанын кереги жок да себеп болушу мүмкүн. колдонмо иштеп тарабынан түзүлгөн эркин пайдалануу үчүн, өзгөчө кырдаалдар пайда көзөмөлдөө керек. керектөөчү бир нерсе туура эмес кетти деп айтып, кыям эткенде кабар бир Unhandled кошпогондо, же жөн гана бир бөлүгүн натыйжасында маалыматтарды жоготуп, арыз таштоого күтүүгө тийиш эмес.

Java өзгөчө Handling

эмне үчүн? Java тили өз камтылган өзгөчө ташуу жөндөмүнөн жазыла элек. Албетте, ката көп учурда башка түзүүнүн этабы менен, система кармалганда жазуусу, ал мындан ары мүмкүн эмес экенин пайдалануу боюнча эскертүү берет. Ал эми иштөө учурунда пайда тышкары бул түрү бар. иштеп, аны алдын ала, бул ката себеп жок, ошондуктан коду иштеп турууга жөндөмдүү болушу керек, ошондой эле өзгөчө жана башка бутагына көзөмөл салып, аны колго алды.

Java, бул Түзүүчүнүн да четте кармап, ошондуктан мүнөздүү болгон көйгөйлөр, белгилүү бир стандартты жүзөгө ашыруу моделдерин бар жүктөлгөн.

типтүү таштоолор

жөнөкөй мисал, сиз да четте ала турган - бул талаш. Өзүнүн жөнөкөйлүгүнө карабастан, боюнча, бир биринен ажырата турган инсан катары, ката алып келет нөлгө барабар болушу мүмкүн. Мисалы, эгер мүмкүн болсо, мурунку пайда алдын ала жана алдын алуу. Бирок, бул жол дайыма эле боло бербейт, ошондуктан сынга кармоо "нөлгө бөлүнүү" учурда түздөн-түз уюштурган керек.

кайра иштетүү ката зыянкеч Java механизм мындай болот:

  • дөбө өзгөчө объектиси, ошондой эле ар кандай башка эле, түзүлгөн;
  • Программанын табигый Албетте үзгүлтүккө болуп саналат;
  • салуу механизми кодун улантуу үчүн бир жол табууга аракет кылууда;
  • Иштеп, ишине программанын коопсуз аткарылышын табуу же калыбына келтирилген, же өзгөчө жол менен башка ишке болот.

ката түзүү жөнөкөй мисал, бул болуп жаткан болушу мүмкүн:

Эгер (бир == нөл)

жаңы NullPointerException ыргытып ();

Бул жерде, өзгөрмө бир жөнөтсүн текшерип турат, башкача айтканда, бир нөл объектисине шилтеме жокпу эмес. Бул жагдай пайда болгон жана өзгөчө мамилени талап кыла турган болсо, бир өзгөчөлүк бросок жаңы NullPointerException тарабынан () ыргытылат.

ачкыч жөнүндө аз маалымат

эске албаганда, туш болгондо кандайдыр бир иш-аракет кылууга сөз ачкыч Java пайдалануу зарыл. Алардын беш программалоо Бул тилде:

  • Аракет кыл. Бул ачкыч болот эле жолугуп, ал да четте ыргытып болот кодексинин бир бөлүмдө бир өтүүнү билдирет. Блок чектелген кашаалар {}.
  • Catch. Ал керектүү өзгөчө түрүн кармап жана тиешелүү, аны чечүүгө аракет кылышат.
  • Акыр-аягы. Бул сөздөрдү эч кандай өзгөчө кармап жок болсо да, баары бир керектүү код менен, белгилүү бир бөлүгүн аткаруу үчүн милдеттүү болуп эсептелет жана колдонулат. аракет өткөндөн кийин түздөн-түз жүктөдү.
  • , Ыргытып жибер - Сиз каалаган жерден Java өзгөчө түзө алат.
  • Ыргытып - ыкмасы кол жайгаштырылган бир ачкыч. Ал төмөнкү коду ушул типтеги Java өзгөчөлүгүн ыргытып алат дегенди билдирет. Бул белги эске алуу керек иштеп үчүн белги катары кызмат кылат - ыкма ага күтүлүүдө болуп иштей албайт.

бир аракет менен кармоо

Java тышкары, бошотуу, албетте, аны өзгөчө жол менен чечүүгө болот деп болжолдойт. коду бөлүм блок менен курчалган болсо, аны эмне үчүн абдан ыңгайлуу жолу. Кайсы исключение камтышы мүмкүн. Бул кодду чуркап келгенде, жасалма машина күтүлбөгөн жагдайда табат, оор бөлүгү бар экенин түшүнүүгө жана которуулар иштетүү менен участогуна башкаруу.

Java коду өзгөчө болушу мүмкүн, анын ичинде атайын блок аракет түтөп жатат. Ошентип, ал ошол эле жерде эмес, raspolzayas коду торума түшөт нече күтүлбөгөн жагдайлардан жайгаштырылган.

кайра иштетүү бирдигине өтө мүнөздүү коду төмөнкүчө чагылдырууга болот:

аракет {

// Here исключение пайда болушу мүмкүн, кээ бир коду

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// Бул жерде өзгөчө ташуу бар, анын түрү жана шарттарына ылайык;

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// Бул жерде өзгөчө ташуу бар, анын түрү жана шарттарына ылайык;

}

төмөндө сүрөттөлгөндөй Ачкычтуу сүйлөм боюнча балык деген кодду билдиришти, жана кошпогондо, аны сканерлеп, мамиле кылышы үчүн, анын түрүнө ылайык берилет. аныктагыч аргумент катары коддун блогун кайра иштетүү үчүн колдонулушу мүмкүн.

акырында

ал мурдакы бөлүмдө айкын болуп тургандай, кармоо материалдары өзгөчө кармап, аларды иштеп чыгуу. Бирок өтө көп учурда кырдаал карабастан, алар кармалган ката болгон карабастан, кээ бир коду чуркап жерде пайда болот. Бул үчүн Акыры ачкыч бар. Бул документ же тармак байланыштарын үзүп, ар кандай эсептегичтеринин баалуулуктарды жогорулатуу үчүн колдонулат.

Бул участок бир нече балык блоктору ыкмалары өзгөчө кармап ойлоп берет. Мисалы, аракет камтылган коду, мисалы, суук сыяктуу күтүлбөгөн кырдаал жаратат. Андан кийин, консолу сөз "муздак Кантсем!" Көрсөтүлө турган жана "бир нерсе жөнүндө эмне айтууга болот? Кайрат ушундай". Башкача айтканда, акыры блок ар кандай учурда аткарылат.

Чынында эле, акыр-аягы жок буйруйт болтурбоо. Бул жасалма аспапка аякташына байланыштуу. Аны ишке ашыруу үчүн кантип табуу, ал Интернет жайыт жөнүндө мүмкүн.

ыргытуу ачкыч

Бросок өзгөчөлүгүн түзөт. Анын синтаксисин төмөнкүчө чагылдырууга болот:

жаңы NewException ыргытып ();

түрү NewException үчүн жаңы сынга түзүлгөн жок (). бир түрү эле стандарттык Java китепкана класстарга киргизилбеген колдонулган жана мурда өз өндүрүшүн иштеп чыгуучу жак тарабынан аныкталышы мүмкүн эле.

Бул долбоор чакыруу аны кармап алышы үчүн, аракет блок ичинде болушу зарыл болгон ар кандай ыкма менен баяндоо, бир бөлүгү болуп саналат.

Ачкычтуу сүйлөм боюнча ыргытып

ыкмасы да четте ыргытып мүмкүн, бирок туура чечүү үчүн мүмкүнчүлүгү жок бир абалда иштеп чыгууга, анда эмне. Ушул максатта, ыкмасы кол сөз ыргытып жана мүмкүн тышкары түрү көрсөтүлөт.

Бул энбелгиси ыкмасы, алардын ошол эле исключение чече албай турганын кардар иштеп чыгуучулар үчүн көрсөткүчтүн бир түрү болуп саналат. Мындан тышкары ката түрү текшерилет болсо, анда компилятор апачык аны сурап мажбур кылат.

ресурстарын көрүү

Java версия 7 иштеп ресурстар менен дарылоо аракет блок катары өтө маанилүү болуп саналат.

Көптөгөн объекттери пайдалануу ресурстарын сактоого багытталган жабылып керек кийин, Java-жылы түзүлгөн. Буга чейин ал бул жагдайды эске алып, бул учурлар кол токтотууга туура келди. Азыр болсо, алар AutoClosable макамын көрүндү. Бул эсеп жазуусу көрүш блок жайгаштырылган мурунтан эле колдонулган буюмдарды жабууга жардам берет. Бул ыкманын жардамы менен анын окумдуулугун олуттуу жогорулаган кодду жазып кыйла ыңгайлуу болуп калды.

Өз класстар Java бөтөнчөлүктөрү

сүрөттөлгөн программалоо тилинин жаратуучулардын өзгөчө дизайн түрлөрүн эсеп көптөгөн аспектилери эске алды. Бирок, Java өз өзгөчө аныктай билүүнү ишке да жолдору боюнча бардык иш-чаралардын жыйынтыгы алдын алуу үчүн, иш жок, ал өзгөчө кодексинин муктаждыктарына ылайык келет.

жөнөкөй жол түзүү үчүн - объект жагдайга ылайыктуу мураскорум.

Exception мураскорум жок болгон, өз салууларды аныктоо үчүн пайдаланылат класс. Жылы MyException эки конструкторлор бар - демейки, экинчиси - аргумент Кабар түрү жип менен.

Анан, кол камтылган мамлекеттик класстык FullConstructors ишке ыкма е-жылы MyException ыргытат. Бул ачкыч е Java MyException кошпогондо эле койсо болот дегенди билдирет. Андан тышкары, ыкмасы орган ыргытса тарабынан текст маалымат өзү чыгуучунун жана айкын муун MyException өндүрүмдөрүн, өндүргөн.

Экинчи ыкма кармоо боюнча консолго чагылдырылат сиз да четте түзүп, ал сап параметрин өтүп жатат деген биринчи, бир аз айырмаланып турат. Негизги ал е () жана г () MyException басып өзгөрүүлөр көрүш текшерүү жана ачкыч балык жайгаштырылган экендиги көрүнүп турат. иштеп чыгуу натыйжасы чыгуучунун ката кабар көрсөтүү болуп саналат:

Ошентип, ал өз колу менен, Java өзгөчө кошуп келди.

Архитектура бөтөнчөлүктөрү

Java бардык нерселер сыяктуу өзгөчөлүктөр да тукум кууп өткөн жана иерархиялык түзүлүшү ээ. Бул программалоо тилинде ыргытып бардык каталарды башкы элемент класс java.lang.Throwable болуп саналат. Анын эки түрү тукум - ката жана өзгөчөлүк.

Ката - критикалык ката белги жана текшерилбей Java өзгөчө болуп саналат. Колго алуу жана кайра иштетүү көпчүлүк учурда мындай маалыматтар долбоорлоо стадиясында болот жана акыркы колдонмо кодексине киргизүү муктаж эмес.

өзгөчө түзүү жана талдоо үчүн көбүнчө колдонулат класс өзгөчөлүк болуп саналат. Алар, өз кезегинде, RuntimeException, анын ичинде бир нече бутактарга бөлүнөт. RuntimeException By узактыгы өзгөчөлүктөр болуп эсептелет, башкача айтканда, программанын ичинде болуп өткөн. ал боюнча алынган бардык класстар айтпаганда да болуп саналат.

Көп өзгөчөлүктөр бар

Java эске албаганда да, тизмесин ылдый, келтирилген Эгер майда-чүйдөсүнө чейин алардын ар бири сүрөттөп керек, анткени көп учурда колдонулат:

  • ArithmeticException. Бул эсеп ишмердүүлүгү менен байланыштуу каталарды камтыйт. абдан ачык-айкын мисал - нөлгө бөлүү.
  • ArrayIndexOutOfBoundsException - узундугу жалпы суммасынан ашса көрүүнүн элемент саны кайрылуу.
  • ArrayStoreException - тизилип, бир-бирине дал келбеген элемент түрүн жүктөлсүн аракети.
  • ClassCastException - башка бир туура эмес, бир түрүн алып келүүгө аракет.
  • IllegalArgumentException - ыкмасы чалуу туура эмес аргументтерди колдонуу.
  • NegativeArraySizeException - сен терс өлчөмү көптөгөн түзүүгө өзгөчө.
  • NullPointerException - шилтемелер кыянаттык менен анык болот.
  • NumberFormatException - бүтүн бир туура эмес сап өзгөртүү кийин пайда болот.
  • UnsupportedOperationException - операция колдоого алынбайт.

Бул мисалдар башымча жана Java тышкары түрлөрүн билдирет. Бирок текшерилет деп ойлойбуз:

  • ClassNotFoundException - Class табылган жок.
  • IllegalAcccessException - класска мүмкүнчүлүгүн чектейт.
  • InterruptedException - агымынын камтыган.
  • NoSuchFieldException - эч кандай милдеттүү талаа жок.

тышкары чечмелөө

көп кездешкен тышкары сүйлөгөн жай үлгүсүнө, алардын маанисин чечмелеп, туура эмес кабыл алынышы мүмкүн экенин белгилей кетүү керек. Кийинки күтүлбөгөн жагдай болушу мүмкүн, дагы майда-чүйдөсүнө чейин түшүндүрүп кыска тизмеси болуп саналат.

NullPointerException. , Бир өзгөчөлүк бар эле биринчи жолу КР барабар объектисине шилтеме кайрылууга болот. Ошондой эле нөл класс мисалы ыкмаларына карата жайылтылат. NullPointerException бирдей узундугу нөл толгон алуу учурунда ыргытып мүмкүн. Мындай жагдайларды алдын алуу үчүн мезгил-мезгили менен күчүн боюнча сайттарды текшерип чыгат.

ArrayIndexOutOfBoundsException. Ар бир программа Бүтүн пайдалануу жашап кете албайт. Демек, аны тез-тез кайрылуу пайда болот жана ката. Exception чыгуучунун индекси тизмеде жок бир катар элементи кирүүгө аракеттенгенде, пайда болот. Мисалы, суралган маани же нөлдүк узундугу төмөн. Абдан көп тизилип нөл упай менен башталат да натыйжасы болуп саналат.

жыйынтыктары

Java өзгөчө Handling - абдан программист ишин өбөлгө түзөт жана аны коду каталардын таза жана жок түзүүгө мүмкүндүк берет күчтүү курал чөйрө. кантип жылмакай жана туруктуу иштеши арызы боюнча иштеп статусу жана кадыр-баркына жараша болот.

Албетте, көп же аз жөнөкөй программаларына демейдегиден жагдайларды көп турбай байкоо жүргүзүүгө. Бирок, бир нече жүз саптар үчүн чоң технологиялар комплекстеринде гана узак мөөнөттүү текшерүү жана мүчүлүштүктөрүн натыйжасында мүмкүн болот.

Кээ бир учурларда пайда болгон Java өзгөчө күнөөсү үчүн, алар демилгелүү жаткан кээ бир компаниялар сыйлык беришет. Айрыкча, коопсуздук саясаты программалык бузулушун пайда алгандар абдан ыраазы болгон.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ky.delachieve.com. Theme powered by WordPress.