Java valodā izņēmums ir nevēlams vai negaidīts notikums, kas notiek programmas izpildes laikā, t.i., izpildes laikā, kas traucē normālu programmas instrukciju plūsmu.
Programmā Java ir divu veidu izņēmumi:
- Pārbaudīti izņēmumi
- Neatzīmēti izņēmumi

Pārbaudīti izņēmumi Java
Šie ir izņēmumi, kas tiek pārbaudīti kompilēšanas laikā. Ja kāds kods metodes ietvaros rada pārbaudītu izņēmumu, tad metodei ir jāapstrādā izņēmums vai arī jānorāda izņēmums, izmantojot metieni atslēgvārds . Pārbaudītajiem izņēmumiem ir divi veidi: pilnībā pārbaudīti un daļēji pārbaudīti izņēmumi. Pilnībā pārbaudīts izņēmums ir pārbaudīts izņēmums, kurā tiek pārbaudītas arī visas tā pakārtotās klases, piemēram, IOException un InterruptedException. Daļēji pārbaudīts izņēmums ir pārbaudīts izņēmums, kurā nav atzīmētas dažas no tā pakārtotajām klasēm, piemēram, izņēmums.
Piemēram, apsveriet šādu Java programmu, kas atver failu vietā C: esta.txt un izdrukā tā pirmās trīs rindiņas. Programma netiek kompilēta, jo funkcija main() izmanto FileReader(), un FileReader() izmet pārbaudītu izņēmumu FileNotFoundException . Tas izmanto arī metodes readLine () un close (), un šīs metodes arī izmet pārbaudīto izņēmumu IOIzņēmums
Piemērs:
Java
// Java Program to Illustrate Checked Exceptions> // Where FileNotFoundException occurred> // Importing I/O classes> import> java.io.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Reading file from path in local directory> >FileReader file =>new> FileReader(>'C: esta.txt'>);> >// Creating object as one of ways of taking input> >BufferedReader fileInput =>new> BufferedReader(file);> >// Printing first 3 lines of file 'C: esta.txt'> >for> (>int> counter =>0>; counter <>3>; counter++)> >System.out.println(fileInput.readLine());> >// Closing file connections> >// using close() method> >fileInput.close();> >}> }> |
>
>
savienība pret arodbiedrību visiem
Izvade:

Lai labotu iepriekš minēto programmu, mums vai nu jānorāda izņēmumu saraksts, izmantojot metienus, vai arī jāizmanto try-catch bloks. Mēs esam izmantojuši metienus zemāk esošajā programmā. Kopš FileNotFoundException ir apakšklase IOIzņēmums , mēs varam tikai norādīt IOIzņēmums metienu sarakstā un padariet iepriekšminēto programmu kompilatoru bez kļūdām.
Piemērs:
Java
// Java Program to Illustrate Checked Exceptions> // Where FileNotFoundException does not occur> // Importing I/O classes> import> java.io.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >throws> IOException> >{> >// Creating a file and reading from local repository> >FileReader file =>new> FileReader(>'C: esta.txt'>);> >// Reading content inside a file> >BufferedReader fileInput =>new> BufferedReader(file);> >// Printing first 3 lines of file 'C: esta.txt'> >for> (>int> counter =>0>; counter <>3>; counter++)> >System.out.println(fileInput.readLine());> >// Closing all file connections> >// using close() method> >// Good practice to avoid any memory leakage> >fileInput.close();> >}> }> |
>
>
Izvade:
First three lines of file 'C: esta.txt'>
Neatzīmēti izņēmumi Java
Šie ir izņēmumi, kas netiek pārbaudīti kompilēšanas laikā. Programmā C++ visi izņēmumi nav atzīmēti, tāpēc kompilators neliek ne apstrādāt, ne norādīt izņēmumu. Programmētājiem ir jābūt civilizētiem un jāprecizē vai jānoķer izņēmumi. Java, izņēmumi saskaņā ar Kļūda un RuntimeException klases ir nekontrolēti izņēmumi, viss pārējais zem iemetamā ir atzīmēts.
Apsveriet šādu Java programmu. Kompilē labi, bet iemet Aritmētiskais izņēmums kad skrien. Kompilators ļauj to apkopot, jo Aritmētiskais izņēmums ir nepārbaudīts izņēmums.
Piemērs:
Java
// Java Program to Illustrate Un-checked Exceptions> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Here we are dividing by 0> >// which will not be caught at compile time> >// as there is no mistake but caught at runtime> >// because it is mathematically incorrect> >int> x =>0>;> >int> y =>10>;> >int> z = y / x;> >}> }> |
>
>
c++ pārvērš int par virkni
Izvade
Exception in thread 'main' java.lang.ArithmeticException: / by zero at Main.main(Main.java:5) Java Result: 1>
Īsāk sakot, neatzīmētie izņēmumi ir izpildlaika izņēmumi, kas nav jānoķer vai jāpaziņo metienu klauzulā. Šos izņēmumus parasti izraisa programmēšanas kļūdas, piemēram, mēģinājums piekļūt indeksam ārpus masīva robežām vai mēģinājums dalīt ar nulli.
Neatzīmētie izņēmumi ietver visas RuntimeException klases apakšklases, kā arī klasi Error un tās apakšklases.
Šeit ir daži Java neatzīmētu izņēmumu piemēri:
1. ArrayIndexOutOfBoundsException: Šis izņēmums tiek izmests, kad mēģināt piekļūt masīva indeksam, kas ir ārpus robežām.
2. NullPointerException: Šis izņēmums tiek izmests, kad mēģināt piekļūt nulles objekta atsaucei.
3. Aritmētiskais izņēmums: Šis izņēmums tiek izmests, ja mēģināt dalīt ar nulli vai veikt nederīgu aritmētisko darbību.