Провера изузетака је једна од најважнијих ствари у програмирању и тестирању софтвера. Проверено и непотврђено изузетак зауставља покретање програма када покушава да ухвати грешку или грешку.
Штавише, сматра се да је одговорност програмера да осигура да се ове грешке никада не догоде. И проверени и непроверени изузеци су изузетно слични, али су различити.
Кључне Такеаваис
- Компајлер проверава проверене изузетке током времена компајлирања и програмер треба да њиме рукује користећи блок три-цатцх или кључну реч тхровс, док се непроверени изузеци јављају током времена извођења и не морају да се обрађују.
- Проверени изузеци се користе за грешке које се могу поправити, као што је датотека није пронађена, док се необележени изузеци користе за непоправљиве грешке, као што су изузеци од недостатка меморије или нултог показивача.
- Проверени изузеци су део потписа методе, док непроверени изузеци нису.
Проверен вс Непроверен изузетак
Разлика између провереног и неконтролираног изузетка је у томе што су проверени изузеци они који морају бити ухваћени и обрађени наредбом цхецкс () или ће узроковати да програм прекине и одштампа траг стека, док би изузеци без провере, с друге стране, требали не треба уопште да буде ухваћен или рукован, јер јесте програмерје одговорност да осигура да се ове грешке никада не догоде.
Изузетак Цхецкед је специфичан тип изузетка који зауставља покретање програма све док га не ухвати блок цатцх или док га не наведе у клаузули тхровс методе, штавише, Цхецкед изузетак је ухваћен и обрађен наредбом цхецкс () или они ће проузроковати да се програм заврши и одштампа траг стека.
Ако код који је изазвао изузетак није правилно тестиран, то би могло да изазове чудне непроверене изузетне грешке које може бити тешко пронаћи и поправити.
Штавише, непроверени изузеци уопште не треба да се хватају или обрађују, јер је одговорност програмера да се побрине да се ове грешке никада не догоде.
Упоредна табела
Параметри поређења | Проверен изузетак | Неозначен изузетак |
---|---|---|
Дефиниција | Провјерени изузеци су они који морају бити ухваћени и обрађени наредбама цхецкс (). | Непроверени изузеци уопште не треба да се хватају или обрађују. |
Догађај | Блок цатцх мора да обрађује проверене изузетке током времена компајлирања. | Неухваћени изузеци, познати и као изузеци времена извршавања, су Непроверени изузеци. |
Грешка руковање | Означени изузетак зауставља покретање програма све док не покуша да ухвати грешку или грешку. | Одговорност програмера је да осигура да се ове грешке никада не догоде. |
Екцептион Цлассес | Има изузетне часове. | Нема изузетних часова, или није већи део изузетних часова. |
Пример | ОутОфМемориЕррор, НуллПоинтерЕкцептион и СтацкОверфловЕррор. | ИндекОутОфБоундсЕкцептион |
Шта је проверени изузетак?
Проверени изузеци су уско повезани са тестирањем софтвера, штавише, проверени изузетак је изузетак који мора да се обради или ће се програм прекинути.
То значи да се код који прати наредбу тхров неће извршити ако ниједан цатцх блок не обради изузетак.
Проверени изузеци служе за две сврхе: спречавају наставак програма када дође до грешке и пружају информације за отклањање грешака о томе где да се пронађе та грешка.
Компајлер не приморава програмера да рукује изузетком, али свака класа која проширује другу класу такође треба да прошири или примени све своје проверене изузетке.
Ако то не учини, компилација класе проширења не успева са грешком у времену компајлирања која наводи да мора да обрађује све своје изузетке проверене суперкласом. Ово спречава коришћење наслеђа за заобилажење уграђеног неуспех режими.
Када се избаци изузетак, он се прослеђује програму за отклањање грешака Ецлипсе или на оперативни систем, који затим нормално прекида програм. Оперативни систем штампа траг стека.
Праћење стека пружа информације за сваки позив метода по редоследу којим су позвани. Ово омогућава програмеру да пронађе где у коду или где у току извршења њиховог кода дошло до изузетка.
Шта је непроверен изузетак?
Непроверени изузеци постоје да би се омогућило програмерима да програмирају флексибилније и ефикасније. Јава је дизајнирана да омогући програмерима да креирају апликације које ефикасно користе ресурсе и избегавају појаву застоја.
Непроверени изузеци се могу елиминисати пажљивим дизајном и праксама кодирања. Међутим, сви изузеци осим НуллПоинтерЕкцептион у Јава коду сматрају се непровереним.
Непроверени изузеци уопште не треба да се хватају или обрађују.
Штавише, они су начин да код вишег нивоа каже коду нижег нивоа да ће урадити нешто што није безбедно за нити, али што неће изазвати проблеме ако постоји само једна нит која је покренута у било ком тренутку, као нпр. ажурирање неких података или приказивање неке графике на екрану.
Коришћење непроверених изузетака је ризичан предлог. Ако ће класа избацити непроверени изузетак, онда ко год користи ту класу мора да буде свестан тога и да има неке ригорозне методе за решавање тога.
На пример, програмер ће можда желети да прочита неке податке из датотеке, а затим их поново запише, а за ову врсту функционалности није потребна никаква синхронизација.
Савршено је прихватљиво да апликација чита исте податке двапут на две различите нити без негативних ефеката на перформансе или стабилност система.
Главне разлике између проверених и непроверених изузетака
- Провјерени изузеци су они који морају бити ухваћени и обрађени наредбама цхецкс (), док непровјерени изузеци не треба да буду ухваћени или обрађени уопште.
- Провереним изузецима мора да рукује блок цатцх током времена компајлирања, док су неухваћени изузеци, такође познати као изузеци времена извршавања, непроверени изузеци.
- Проверени изузетак зауставља покретање програма све док не покуша да ухвати грешку или грешку, док су неизузеци без провере одговорност програмера да осигура да се ове грешке никада не догоде.
- Проверени изузетак има изузетне класе, док непроверени изузеци немају ниједну изузетну класу или није главни део изузетних класа.
- Пример провереног изузетка би био ОутОфМемориЕррор, НуллПоинтерЕкцептион и СтацкОверфловЕррор, док би пример непровереног изузетка био ИндекОутОфБоундсЕкцептион.
Референце
- https://ieeexplore.ieee.org/abstract/document/4343929/
- https://link.springer.com/article/10.1023/A:1010020917337
Последње ажурирање: 11. јуна 2023
Сандееп Бхандари је дипломирани инжењер рачунарства на Универзитету Тхапар (2006). Има 20 година искуства у области технологије. Он има велико интересовање за различите техничке области, укључујући системе база података, рачунарске мреже и програмирање. Више о њему можете прочитати на његовом био паге.
Свеобухватна покривеност проверених и непроверених концепата изузетака, заједно са њиховим применама, пружа свеобухватно разумевање. Чланак се ефикасно бави основним аспектима ових изузетака у програмирању.
Објашњење у чланку да су проверени изузеци грешке које се могу поправити, као што је датотека није пронађена, и непроверени изузеци који су непоправљиве грешке, као што је недостатак меморије, релевантно је и наглашава важност разликовања између њих.
Чланак пружа детаљне информације о провереним и непровереним изузецима, јасно стављајући до знања како се разликују и које функције служе. Такође објашњава како компајлер рукује провереним изузецима током времена компајлирања и одговорност програмера у руковању непровереним изузецима.
Дискусија о провереним изузецима који захтевају блок три-цатцх или кључну реч тхровс док се непроверени изузеци дешавају током извршавања и не треба да се обрађују је проницљива. Подвлачи потенцијалне сценарије за појаву сваке врсте изузетка.
Детаљно објашњење проверених изузетака који су део потписа методе, док непроверени изузеци нису, пружа драгоцен увид у природу ових изузетака. Чланак ефективно саопштава разлику између то двоје.
Чланак нуди детаљну анализу проверених и непроверених изузетака, наглашавајући њихов значај и импликације на извршавање програма. Јасан опис помаже у разумевању њихове улоге у развоју и тестирању софтвера.
Чланак представља свеобухватну табелу поређења која сажето приказује разлике између проверених и непроверених изузетака. Табела поједностављује разумевање две врсте изузетака, њиховог појављивања и начина на који се њима рукује.
Детаљне информације о провереним и непровереним изузецима, укључујући дефиницију, појаву и руковање грешкама, служе као вредан ресурс за оне који желе да продубе своје знање о тестирању софтвера и принципима програмирања.