@SneakyThrows inaweza kutumika kutupa vighairi vighairi vilivyoteuliwa bila kutangaza hili katika kifungu cha njia yako ya kutupa. Uwezo huu wa kuleta ubishi unapaswa kutumiwa kwa uangalifu, bila shaka.
Je, unashughulikia vipi isipokuwa bila kurusha?
Tumia tu jaribu kuzuia na uendelee, ikiwa ubaguzi ni mdogo na hauathiri tabia yoyote ya programu yako. Unaweza kuzuia kukamata ubaguzi, lakini ikiwa kuna ubaguzi uliotupwa na haujapata programu yako itaacha kutekeleza (kuanguka). Hakuna njia ya kupuuza ubaguzi.
Je, ni ubaguzi gani uliochaguliwa?
Aidha iliyochaguliwa ni aina ya vighairi ambavyo ni lazima vinaswe au kutangazwa kwa njia ambayo hutupwa. Kwa mfano, java.io. IOException ni ubaguzi uliochaguliwa.
Kuna tofauti gani kati ya vighairi vilivyochaguliwa na visivyochaguliwa?
1) Imeteuliwa: ni vighairi ambavyo huangaliwa wakati wa mkusanyiko. Ikiwa msimbo fulani ndani ya mbinu utatoa ubaguzi ulioangaliwa, basi mbinu lazima ishughulikie ubaguzi au lazima ibainishe ubaguzi kwa kutumia neno kuu la kutupa. … 2) Zisizochaguliwa ni vighairi ambavyo havijaangaliwa kwa wakati uliokusanywa..
Je, ubaguzi wa wakati wa kukimbia ni aina ndogo ya ubaguzi?
RuntimeException ni daraja kuu la vighairi hivyo ambavyo vinaweza kutupwa wakati wa utendakazi wa kawaida wa Mashine ya Mtandaoni ya Java. RuntimeException na madaraja yake nivighairi visivyochaguliwa.