Tofauti Muhimu - Imechaguliwa dhidi ya Isiyochaguliwa Imechaguliwa katika Java
Kighairi ni hitilafu ya wakati wa utekelezaji. Kuna aina mbili za vighairi vinavyojulikana kama vighairi vilivyochaguliwa na visivyochaguliwa. Wakati ubaguzi uliowekwa alama unatokea, programu ya Java huunganishwa kwa rasilimali ya nje kama vile faili, kifaa au hifadhidata. Vighairi hivi vinaangaliwa na mkusanyaji. Baadhi ya mifano ya vighairi vilivyoangaliwa ni ubaguzi wa IO na ubaguzi wa FileNotFound. Wakati ubaguzi ambao haujadhibitiwa unatokea, programu haijaunganishwa kwa rasilimali yoyote ya nje. Vighairi hivi havikaguliwi na mkusanyaji. Baadhi ya mifano ya vighairi visivyochaguliwa ni Vighairi vya hesabu na Vighairi vya ArrayOutOfBound. Nakala hii inajadili tofauti kati ya ubaguzi ulioangaliwa na ambao haujachaguliwa katika Java. Tofauti kuu kati ya ubaguzi uliowekwa alama na ambao haujachaguliwa katika Java ni kwamba ubaguzi uliowekwa alama huangaliwa na mkusanyaji wakati ubaguzi ambao haujachaguliwa haujaangaliwa na mkusanyaji.
Je, Ni Kighairi Kilichoangaliwa katika Java?
Ikitokea ubaguzi uliochaguliwa, programu ya Java huunganishwa kwenye rasilimali ya nje. Nyenzo hii inaweza kuwa kifaa kama kichapishi. Inaweza kuwa faili au hifadhidata. Kwa hivyo, tofauti hizo zinaangaliwa na mkusanyaji. Isipokuwa kwa IO ni ubaguzi ulioangaliwa. Inatokea kwa sababu ya hitilafu kwenye kifaa. Wakati programu inapata faili ambayo haipo, basi itasababisha ubaguzi wa FileNotFound. Programu inaweza kuunganishwa kwenye hifadhidata kama vile MySQL, Oracle n.k ili kuhifadhi data. Ikiwa hitilafu ilitokea kuhusiana na hifadhidata, itakuwa Isipokuwa SQL. Hiyo ni baadhi ya mifano ya vighairi vilivyoangaliwa. Katika haya yote, programu imeunganishwa na rasilimali ya nje. Katika vighairi vilivyoangaliwa, ni lazima kushughulikia ubaguzi. Ikiwa haijashughulikiwa, mtiririko sahihi wa programu utasitishwa, na faili ya darasa haitatolewa. Hitilafu inaweza kushughulikiwa kwa kutumia try, catch block.
Kielelezo 01: Ushughulikiaji Usiofuata Uliochaguliwa
Kulingana na yaliyo hapo juu, FileReader ilisoma data kutoka kwenye faili. Faili ya maandishi1.txt haipo katika eneo lililobainishwa. Nambari ambayo inaweza kutoa ubaguzi imewekwa ndani ya kizuizi cha kujaribu. Ujumbe wa kuchapisha uko ndani ya kizuizi cha kukamata. Kwa vile hakuna faili inayoitwa text1.txt, hii husababisha FileNotFoundException. Kwa kutumia ushughulikiaji wa kipekee, ujumbe huchapishwa kwenye skrini.
Je, ni Vighairi Vilivyoangaziwa katika Java?
Vighairi visivyochaguliwa havijaangaziwa na mkusanyaji. Tofauti na vighairi vilivyoainishwa, isipokuwa ambavyo havijachaguliwa, programu ya Java haijaunganishwa kwa rasilimali ya nje kama vile faili, hifadhidata au kifaa. Baadhi ya vighairi vya kawaida ambavyo havijachaguliwa ni Vighairi vya Arithmetic, ArrayOutOfBound na NullPointer.
int a=10, b=0;
int div=a/b;
System.out.println(div);
Hii itasababisha ubaguzi wa hesabu kwa sababu ya kupiga mbizi ‘a’ kwa sufuri. Rejelea msimbo ulio hapa chini.
Kielelezo 02: Ushughulikiaji Isiyo wa Kihesabu
Kulingana na programu iliyo hapo juu, kutofautisha a ni thamani kamili. Tofauti b ni 0. Mgawanyiko wa nambari hizi mbili ni mgawanyiko kwa sifuri. Kwa hiyo, itasababisha ubaguzi wa hesabu. Inaweza kushughulikiwa kwa kutumia jaribio la kukamata. Taarifa ambazo zinaweza kusababisha ubaguzi zimewekwa ndani ya kizuizi cha kujaribu. Ujumbe utakaoonyeshwa uko kwenye kizuizi cha kukamata.
Rejea kipande kilicho hapa chini cha msimbo.
int array1={1, 2, 3, 4, 5};
System.out.println(safu1[5]);
Hii itasababisha hali ya kutofuata kanuni. Safu1 ni safu iliyo na vipengele 5. Kielezo cha kuanzia cha safu ni sifuri. Kuchapisha thamani ya faharasa ya 5th husababisha ubaguzi kwa sababu haitumiki. Faharasa ya juu zaidi ya safu1 ni 4.
Kielelezo 03: Ushughulikiaji Usio wa Mpangilio Nje yaMpaka
Kulingana na programu iliyo hapo juu, safu1 ina vipengele 5. Kuchapisha kipengee kwa index 6 kutasababisha ubaguzi kwa sababu hakijafungwa. Faharasa ya juu zaidi inayoweza kuhifadhiwa katika safu1 ni 5. Ujumbe wa hitilafu huchapishwa kwa kutekeleza kizuizi cha kukamata.
Kuna Ufanano Gani Kati ya Vighairi Vilivyoainishwa na Visivyochaguliwa katika Java
Zote Zilizochaguliwa na Zisizoteuliwa katika Java ni aina za vighairi katika Java
Ni Tofauti Gani Kati ya Vighairi Vilivyoainishwa na Visivyochaguliwa katika Java?
Imechaguliwa dhidi ya Vighairi Visivyochaguliwa katika Java |
|
Kighairi kilichochaguliwa ni hitilafu ya wakati wa utekelezaji ambayo inaangaliwa na mkusanyaji. | Ubaguzi ambao haujachaguliwa ni hitilafu ya wakati wa utekelezaji ambayo haijaangaliwa na mkusanyaji. |
Matukio | |
Ikitokea ubaguzi uliowekwa alama, programu ya Java huunganishwa kwenye rasilimali ya nje kama vile faili, kifaa au hifadhidata. | Inapotokea ubaguzi ambao haujachaguliwa, programu ya Java haijaunganishwa kwenye rasilimali ya nje. |
Mifano | |
IOException, FileNotFoundException, SQLException ni baadhi ya mifano ya vighairi vilivyoteuliwa. | Vighairi vya hesabu, ArrayOutOfBoundException, NullPointerException ni baadhi ya mifano ya vighairi visivyochaguliwa. |
Muhtasari - Imechaguliwa dhidi ya Isiyochaguliwa Imechaguliwa katika Java
Kighairi ni tukio ambalo linakatiza utekelezaji wa mtiririko wa programu. Kuna aina mbili za ubaguzi. Zinaitwa vighairi vilivyoangaliwa na vighairi visivyochaguliwa. Makala haya yalijadili tofauti kati ya vighairi vilivyochaguliwa na vighairi visivyochaguliwa. Tofauti kati ya ubaguzi ulioangaliwa na ambao haujachunguzwa katika Java ni kwamba ubaguzi ulioangaliwa unaangaliwa na mkusanyaji wakati ubaguzi ambao haujadhibitiwa haujaangaliwa na mkusanyaji. Kwa vile vighairi vinaathiri mtiririko sahihi wa utekelezaji wa programu, ni mazoezi mazuri ya programu kuyashughulikia.