Ерекшелік пен қатенің арасындағы айырмашылық

Ерекшелік пен қатенің арасындағы айырмашылық
Ерекшелік пен қатенің арасындағы айырмашылық

Бейне: Ерекшелік пен қатенің арасындағы айырмашылық

Бейне: Ерекшелік пен қатенің арасындағы айырмашылық
Бейне: АЙФОН 13 пен АЙФОН 12 қандай айырмашылығы бар? НЕГЕ ҚЫМБАТ? 2024, Шілде
Anonim

Ерекше және Қате

Бағдарлама іске қосылған кезде күтпеген әрекет міндетті түрде орын алады. Бұл ерекше жағдайларға немесе қателерге байланысты болуы мүмкін. Ерекшеліктер - бұл қалыпты бағдарлама ағынын бұзуы мүмкін оқиғалар. Қателер - бұл түзетілмейтін деп санауға болатын жағдайлар. Ерекшеліктер негізінен қолданбаның өзіне қатысты, ал қателер бағдарлама жұмыс істеп тұрған жүйеге қатысты.

Ерекшелік дегеніміз не?

Ерекшелік - қалыпты бағдарлама ағынын бұзуы мүмкін оқиға. Ерекше атау «ерекше оқиғадан» шыққан. Ерекшелікті тастау - ерекше жағдай нысанын жасау және оны орындау уақыты жүйесіне беру процесі. Ерекшелік нысаны ерекше жағдай орын алған әдіс арқылы жасалады. Ерекшелік нысаны ерекше жағдайдың түрі мен сипаттамасы сияқты пайдалы ақпаратты қамтиды. Орындау уақыты жүйесі ерекше жағдай нысанын алған кезде, ол кері ретпен (әдістер шақырылған) өту арқылы оны шақыру стекінен өңдеу үшін біреуді табуға тырысады. Қоңыраулар стек - бұл ерекше жағдай орын алған әдіске дейін шақырылған әдістердің реттелген тізімі. Орындау уақыты жүйесі ерекше жағдай өңдегіші бар әдісті тапса сәтті болады. Ерекше жағдайды өңдеуші - аталған ерекше жағдайды ресми түрде өңдей алатын код блогы. Орындау уақыты жүйесі сәйкес өңдегішті тапса (яғни, ерекшелік түрі өңделетін түрге сәйкес келсе), ол ерекше жағдай нысанын өңдеушіге береді. Бұл ерекшелікті ұстау деп аталады. Дегенмен, ерекше жағдайды өңдеу мүмкін болмаса, бағдарлама тоқтатылады. Java тілінде ерекшеліктер 'Throwable класынан' мұраланады. NullPointerException және ArrayIndexOutOfBoundsException Java тіліндегі екі жалпы ерекшелік болып табылады.

Қате дегеніміз не?

Қате – қалпына келтіруге болмайтын жағдай, мысалы, қол жетімдіден үлкен жад көлемін қажет ететін бағдарлама. Бұл қателерді орындау уақытында өңдеу мүмкін емес. Қате орын алса, бағдарлама жұмысын тоқтатады. Java тілінде қателер Throwable сыныбынан мұраланады. Қателер әдетте бағдарламашы (немесе қолданба) ұстауға тырыспауы керек күрделі мәселелерді білдіреді. Қателер - бұл қалыпты жағдайларда ешқашан күтілмейтін, сондықтан ешқашан болжалмаған әдеттен тыс жағдайлар. Мысалы, OutOfMemoryError, StackOverflowError және ThreadDead осындай қателер болып табылады. Әдістерде қателерді өңдеушілер ешқашан болмауы керек.

Ерекшелік пен қатенің айырмашылығы неде?

Қателер де, ерекше жағдайлар да бағдарламаны орындау кезінде қажетсіз орын алады. Дегенмен, олардың негізгі айырмашылықтары бар. Ерекшеліктерді бағдарламашы болжауы мүмкін, ал қатені болжау қиын. Ерекшеліктерді тексеруге немесе алып тастауға болады. Бірақ қателер әрқашан тексерілмейді. Ерекшеліктер әдетте бағдарламашы тудырған қатені көрсетеді. Дегенмен, қателер жүйе қатесі немесе ресурсты дұрыс пайдаланбау салдарынан орын алады. Сондықтан ерекше жағдайлар қолданба деңгейінде өңделуі керек, ал қателер жүйелік деңгейде (мүмкіндігінше ғана) қарастырылуы керек. Ерекше жағдайды өңдегеннен кейін сізге қалыпты бағдарлама ағынына оралуға кепілдік беріледі. Бірақ қате анықталса да, бағдарламашы оны бірінші кезекте қалай өңдеу керектігін білмеуі мүмкін. Дәстүрлі қателерді өңдеуден айырмашылығы, ерекшеліктер қателерді өңдеу кодын кәдімгі кодтан бөлуге мүмкіндік береді.

Ұсынылған: