Tofauti Kati ya Vighairi Vilivyoainishwa na Vighairi vya Wakati wa Kuendesha

Tofauti Kati ya Vighairi Vilivyoainishwa na Vighairi vya Wakati wa Kuendesha
Tofauti Kati ya Vighairi Vilivyoainishwa na Vighairi vya Wakati wa Kuendesha

Video: Tofauti Kati ya Vighairi Vilivyoainishwa na Vighairi vya Wakati wa Kuendesha

Video: Tofauti Kati ya Vighairi Vilivyoainishwa na Vighairi vya Wakati wa Kuendesha
Video: Miyagi & Andy Panda - YAMAKASI (Official Video) 2024, Novemba
Anonim

Iliyochaguliwa Isiyofuata Sheria dhidi ya Vighairi vya Muda wa Kuendesha

Vighairi ni aina maalum ya matukio, ambayo yanaweza kutatiza mtiririko wa kawaida wa programu. Isipokuwa jina linatokana na "tukio la kipekee". Kutupa ubaguzi ni mchakato wa kuunda kitu cha kipekee na kukabidhi kwa mfumo wa wakati wa kutekeleza. Wakati mfumo wa kukimbia unapopokea kitu cha ubaguzi, utajaribu kutafuta mtu wa kuishughulikia ndani ya rundo la simu kwa kuipitia kwa mpangilio wa nyuma (ambapo njia ziliitwa). Mfumo wa kukimbia unafanikiwa ikiwa utapata njia na kidhibiti cha kipekee. Kidhibiti cha ubaguzi ni kizuizi cha msimbo ambacho kinaweza kushughulikia rasmi ubaguzi huo. Ikiwa mfumo wa wakati wa kukimbia utapata kidhibiti kinachofaa, kitapitisha kitu cha ubaguzi kwa kidhibiti. Hii inaitwa kukamata ubaguzi. Walakini, ikiwa ubaguzi hauwezi kushughulikiwa, programu itasitishwa. Katika Java, isipokuwa hurithi kutoka kwa darasa linaloweza kutupwa. Vighairi Vilivyoainishwa ni vighairi ambapo ushughulikiaji unatekelezwa na mkusanyaji. Vighairi vya wakati wa kukimbia ni aina ya vighairi, ambavyo havijaangaliwa na mkusanyaji.

Je, ni Kighairi Kilichoangaliwa ni kipi?

Vighairi Vilivyoangaliwa ni aidha vipengee vya darasa la java.lang.isipokuwa au aina zake ndogo (isipokuwa java.lang. RuntimeException na aina zake ndogo). Vighairi vilivyowekwa alama "hukaguliwa" wakati wa kukusanya. Hiyo inamaanisha kuwa mpangaji programu lazima ashike au atupe tofauti hizi, au sivyo mkusanyiko utalalamika (kusababisha kosa la mkusanyaji). Kwa sababu hii, tofauti nyingi zilizoangaliwa zinajulikana sana kwa watengeneza programu. Kwa mfano, IOException na madaraja yake madogo yameangaliwa vighairi, na wakati wowote mpangaji programu anashughulika na kupata au kurekebisha faili, mkusanyaji hukagua ili kuhakikisha kuwa IOExceptions zote zinazowezekana zinatunzwa na mtayarishaji programu.

Vighairi vya Muda wa Kukimbia ni nini?

Vighairi vya Muda wa Kukimbia vinajumuisha java.lang. RuntimeException na aina zake zote ndogo. Kinadharia, yanatumika kwa madhumuni sawa na vighairi vilivyowekwa alama, na vinaweza kutupwa au kushughulikiwa kama vighairi vilivyoangaliwa, lakini ushughulikiaji wao hautekelezwi na mkusanyaji. Kwa hivyo, vighairi vya Wakati wa Kuendesha ni vya familia ya vighairi ambavyo havijadhibitiwa. NullPointerException, NumberFormatEception, ClassCastException na ArrayIndexOutOfBoundsException ni vighairi vya kawaida vya wakati wa utekelezaji katika Java.

Kuna tofauti gani kati ya Vighairi Vilivyoainishwa na Vighairi vya Muda wa Kuendesha?

Ingawa, vighairi vilivyoteuliwa na vighairi vya wakati wa utekelezaji ni tukio lisilotakikana wakati wa utekelezaji wa mpango, zina tofauti zake. Ushughulikiaji wa ubaguzi ulioangaziwa unatekelezwa na mkusanyaji, lakini vighairi vya wakati wa utekelezaji sivyo. Kwa hivyo, vighairi vilivyowekwa alama lazima vitupwe au kushughulikiwa ili msimbo uundwe, lakini hakuna mahitaji kama hayo kuhusu vighairi vya wakati wa utekelezaji. Kwa hivyo, vighairi vya wakati wa kutekeleza ni vya kategoria ya vighairi visivyochaguliwa pamoja na hitilafu.

Hasara ya vighairi vilivyowekwa alama ni kwamba mtayarishaji programu lazima aishughulikie hata kama hajui jinsi ya kuishughulikia. Kwa hivyo, ikiwa kitengeneza programu kitatupa tu ubaguzi mpya bila kukunja ya asili, ufuatiliaji wa rafu unaomilikiwa na ubaguzi asili utapotea. Hapa ndipo vighairi vya wakati wa kukimbia vinafaa. Kwa sababu vighairi vyote vya wakati wa utekelezaji vinaweza kushughulikiwa katika sehemu moja, kwa hivyo watayarishaji programu wanaweza kuandika idadi ndogo ya nambari. Kwa upande mwingine, kwa kuwa tofauti zilizoangaliwa lazima zishikwe, hakuna mshangao kwa programu. Yeye daima atajua ni ubaguzi gani ulioangaliwa unaweza kutupwa kwa njia fulani. Kinyume na hili, vighairi mbalimbali vya wakati wa utekelezaji vinaweza kutupwa bila kiweka programu kujua.

Ilipendekeza: