Өзгөчө жана Ката ортосундагы айырма

Өзгөчө жана Ката ортосундагы айырма
Өзгөчө жана Ката ортосундагы айырма

Video: Өзгөчө жана Ката ортосундагы айырма

Video: Өзгөчө жана Ката ортосундагы айырма
Video: Architecture Kata #1 - Разбор с экспертом [Как работает настоящий Solution Architect] #ityoutubersru 2024, Июль
Anonim

Өзгөчө жана Ката

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

Эмне өзгөчөлүк?

Өзгөчө көрүнүш программанын нормалдуу агымын бузушу мүмкүн болгон окуя. Аты-жөнү "өзгөчө окуядан" келип чыккан. Өзгөчөлүктү ыргытуу - бул өзгөчө объектти түзүү жана аны иштөө убактысынын тутумуна өткөрүп берүү процесси. Exception объектиси өзгөчө жагдай болгон ыкма менен түзүлөт. Exception объекти өзгөчөлүктүн түрү жана сүрөттөлүшү сыяктуу пайдалуу маалыматты камтыйт. Иштөө мезгили системасы өзгөчө объектти кабыл алганда, аны тескери тартипте (ыкмалар чакырылган) айланып өтүү менен чалуу стекинин ичинде аны иштетүү үчүн бирөөнү табууга аракет кылат. Чалуу стек - бул өзгөчөлүк болгон ыкмага чейин чакырылган ыкмалардын иреттелген тизмеси. Иштөө убактысы системасы, эгерде ал өзгөчө иштетүүчү менен ыкманы тапса, ийгиликтүү болот. Exception handler - бул аталган өзгөчөлүктү расмий түрдө чече ала турган код блогу. Эгерде иштөө убактысы системасы ылайыктуу иштеткичти тапса (б.а. өзгөчө түрү иштетилүүчү түргө дал келсе), ал өзгөчө объектти иштеткичке өткөрүп берет. Бул өзгөчө кармоо деп аталат. Бирок, өзгөчө кырдаалды чечүү мүмкүн болбосо, программа токтотулат. Java'да өзгөчө жагдайлар 'Throwable классынан' мураска алынат. NullPointerException жана ArrayIndexOutOfBoundsException Java'да эки жалпы өзгөчөлүктөр болуп саналат.

Ката деген эмне?

Ката - бул калыбына келтирилгис деп эсептелген шарт, мисалы, программа жеткиликтүүдөн чоңураак эстутумду талап кылат. Бул каталарды аткаруу учурунда чечүү мүмкүн эмес. Ката пайда болсо, программа токтотулат. Javaда каталар Throwable классынан мураска алынат. Каталар, адатта, программист (же тиркеме) кармоого аракет кылбашы керек болгон олуттуу көйгөйлөрдү билдирет. Каталар – бул кадимки шарттарда эч качан күтүлбөгөн, ошондуктан эч качан күтүлбөгөн анормалдуу шарттар. Мисалы, OutOfMemoryError, StackOverflowError жана ThreadDead ушундай каталар. Методдор эч качан каталарды иштетүүчү болбошу керек.

Өзгөчө жана Катанын ортосунда кандай айырма бар?

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

Сунушталууда: