Izņēmumu apstrāde Java ir viens no spēcīgākajiem mehānismiem, kā rīkoties ar specifiskām kļūdām, kas rodas koda secībā izpildlaikā. Izņēmums ir nekas cits kā izpildlaika kļūda, kas traucē parasto lietojumprogrammas plūsmu.
Parasti tas notiek koda gabalā, un, kad tas notiek, tiek izveidots objekts, kas apzīmē šo izņēmumu, un izmests metodē, kas to izraisīja. Tā rezultātā programma vai lietojumprogramma tiek izjaukta, izraisot lietojumprogrammas nepamatotu pārtraukšanu, kas nav ieteicams. Tāpēc ir jārisina šie izņēmumi, un šeit tiek parādīts izņēmumu apstrādes mehānisms.
Ir divi Java izņēmumu veidi - pārbaudīts un nekontrolēts izņēmums. Šajā rakstā mēs detalizēti apspriedīsim, kas ir pārbaudīts un nekontrolēts izņēmums un kad tos izmantot, un visbeidzot mēs redzēsim atšķirību starp diviem.
Šie ir izņēmumi, kas tiek pārbaudīti un apstrādāti apkopošanas laikā. Java standarta paketē definē vairākas izņēmumu klases java.lang, un visizplatītākie izņēmumi ir standarta tipa apakšklases RuntimeException.
Tie izņēmumi, kas notiek apgabalos, kuri nav tiešā programmas kontrolē, ir zināmi kā pārbaudīti izņēmumi. Ja metode met pārbaudīts izņēmums sastādīšanas laikā, kurš pats ar to nevar tikt galā, tad tam ir jātiek galā ar izņēmumu a noķert bloķēt vai deklarēt izņēmumu, izmantojot met atslēgvārds, pretējā gadījumā tas radīs kompilācijas kļūdu. Kompilators pārbauda izņēmuma objekta veidu katram mest paziņojumu un, ja tas ir pārbaudīts, kompilators pārbauda avota kodu, lai pārliecinātos, vai izņēmums tiek apstrādāts tajā metodē, kurā tas tiek izmests vai deklarēts, lai ar to varētu rīkoties tālāk.
Visi izņēmumi, ko aprakstījis Izņēmums kuras ir tās tiešās apakšklases, izņemot RuntimeException tiek saukti par pārbaudītiem izņēmumiem. Tagad, kad lietot pārbaudītu izņēmumu? Varat izvēlēties izmantot pārbaudītu izņēmumu, kad precīzi zināt, ko darīt, kad Izņēmums notiek vai kad neveiksmju iespējas ir lielākas. Daži pārbaudīti Java bibliotēkas izņēmumu piemēri ir IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException utt..
Šie ir izņēmumi, kas netiek pārbaudīti sastādīšanas laikā. Neatzīmēts izņēmums ir nosacījums, kas parasti atspoguļo kļūdas programmas loģikā un kuru nevar atkopt izpildlaikā.
Vienkārši izsakoties, nekontrolēts izņēmums ir izņēmums, uz kuru neattiecas mēģiniet noķert bloķēt. Viņus nevajag skaidri nozvejot. Faktiski, ja rodas nekontrolēts izņēmums, Java automātiski apstrādā izņēmumu. Nepārbaudīti izņēmumi lielākoties rodas programmēšanas kļūdu dēļ, piemēram, piekļūstot elementam ārpus masīva saistīšanas vai nulles objekta piekļuves metodes. Java valodā visi izņēmumi, kas ir zem izmetamajiem, ir pārbaudīti izņēmumi, turpretī izņēmumi, kas ir tiešas apakšklases Kļūda un RuntimeException ir nekontrolēti izņēmumi.
Nepārbaudītā izņēmuma labākā daļa ir tā, ka tas nemazina koda lasāmību, vienlaikus saglabājot klienta kodu tīru. Daži nekontrolētu izņēmumu piemēri ir ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException utt..
Pārbaudīti un nekontrolēti izņēmumi ir divi Java veidi, lai nodrošinātu normālu lietojumprogrammas plūsmu. Abas kalpo vienam un tam pašam mērķim, kas ir Java apstrāde ar izņēmumiem, un lai arī funkcionalitātē nav atšķirību, nav vienotu noteikumu, kas noteiktu, kad lietot atzīmētos un kad nelietotos izņēmumus. Pārbaudīts izņēmums ir izņēmums, kas tiek pārbaudīts sastādīšanas laikā, turpretī Neatzīts izņēmums ir tas, kas netiek pārbaudīts sastādīšanas laikā..
Pārbaudīts izņēmums attiecas uz nederīgiem scenārijiem, kas rodas ārpus tiešas programmas vadības, savukārt nekontrolēts izņēmums attiecas uz kļūdām programmā vai kļūdām programmas loģikā, kuras nevar atgūt izpildlaikā.
Ja metode izmet pārbaudītu izņēmumu, kompilators pārbaudīs, vai metode apstrādā šo izņēmumu, izmantojot mēģinājumu noķeršanas bloku, vai arī norāda izņēmumu, izmantojot izmešanas atslēgvārdu. Ja metode nenodrošina apstrādes kodu, tā parādīs kompilācijas kļūdu. Gluži pretēji, programma apkopo tikai labi, jo kompilators kompilēšanas laikā nepārbauda, vai nav atzīmēti neizvērsti izņēmumi.
Bieži vien tiek apstrādāti izņēmumi, kas nav iegūti no RunTimeException, turpretī izņēmumi, kas rodas izpildlaikā, tiek reti apstrādāti. Pārbaudīts izņēmums notiek, ja kļūmes iespējas ir pārāk augstas. Nenozīmēts izņēmums, no otras puses, galvenokārt rodas programmēšanas kļūdu dēļ. Visi izņēmumi RuntimeException un kļūdu klasēs ir nekontrolēti izņēmumi, turpretī viss pārējais, kas atrodas zem izmetamajiem, ir pārbaudīti izņēmumi.
Daži pārbaudītu izņēmumu piemēri ir IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException un citi. Nepārbaudītu izņēmumu piemēri ir NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException utt..
Pārbaudīti un nekontrolēti izņēmumi ir divi Java veidi. Lai arī funkcionalitāte abiem izņēmumiem ir vienāda, atšķirībām ir taisnība. Galvenā atšķirība starp pārbaudītajiem un nekontrolētajiem izņēmumiem ir tā, ka pirmo kontrolē kompilators, bet otrais izvairās no kompilatora paziņojuma. Izņēmumi, kas tiek pārbaudīti un apstrādāti sastādīšanas laikā, ir pārbaudīti izņēmumi, turpretī izņēmumi, kas netiek pārbaudīti un apstrādāti apkopošanas laikā, nav pārbaudīti izņēmumi. Šajā rakstā ir paskaidrots, kas tiek pārbaudīts un kas nav atzīmēts kā izņēmums, kad tos lietot, un izskaidrota atšķirība starp abiem.