W Javie wyjątek to niepożądane lub nieoczekiwane zdarzenie, które ma miejsce podczas wykonywania programu, tj. w czasie wykonywania, i które zakłóca normalny przepływ instrukcji programu.
W Javie istnieją dwa typy wyjątków:
- Sprawdzone wyjątki
- Niesprawdzone wyjątki

Sprawdzone wyjątki w Javie
Te są wyjątkami sprawdzanymi w czasie kompilacji. Jeśli jakiś kod w metodzie zgłasza sprawdzony wyjątek, wówczas metoda musi albo obsłużyć wyjątek, albo musi określić wyjątek za pomocą metody rzuca słowo kluczowe . W sprawdzanych wyjątkach występują dwa typy: w pełni sprawdzone i częściowo sprawdzone wyjątki. W pełni sprawdzony wyjątek to sprawdzony wyjątek, w którym sprawdzane są również wszystkie jego klasy podrzędne, takie jak IOException i InterruptedException. Częściowo sprawdzony wyjątek to sprawdzony wyjątek, w którym niektóre jego klasy podrzędne nie są zaznaczone, jak na przykład wyjątek.
jak wydrukować Java
Rozważmy na przykład następujący program Java, który otwiera plik w lokalizacji C: esta.txt i drukuje jego pierwsze trzy wiersze. Program się nie kompiluje, ponieważ funkcja main() używa FileReader(), a FileReader() zgłasza sprawdzony wyjątek Wyjątek FileNotFoundException . Używa także metod readLine() i Close(), które również zgłaszają sprawdzony wyjątek Wyjątek IO
Przykład:
Jawa
// 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();> >}> }> |
>
>
Wyjście:

Aby naprawić powyższy program, musimy albo określić listę wyjątków za pomocą rzutów, albo użyć bloku try-catch. W poniższym programie użyliśmy rzutów. Od Wyjątek FileNotFoundException jest podklasą Wyjątek IO , możemy po prostu określić Wyjątek IO na liście rzutów i uczyń powyższy kompilator programu wolnym od błędów.
Przykład:
Jawa
pseudokod 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();> >}> }> |
>
>
Wyjście:
First three lines of file 'C: esta.txt'>
Niesprawdzone wyjątki w Javie
Są to wyjątki, które nie są sprawdzane w czasie kompilacji. W C++ wszystkie wyjątki nie są zaznaczone, więc kompilator nie wymusza obsługi ani określania wyjątku. Od programistów zależy, czy wykażą się cywilizacją i określą lub wyłapią wyjątki. W Javie wyjątki w ramach Błąd I Wyjątek czasu wykonania klasy są niesprawdzonymi wyjątkami, wszystko inne w obszarze rzucania jest sprawdzane.
Rozważmy następujący program Java. Kompiluje się dobrze, ale wyrzuca Wyjątek arytmetyczny kiedy biegniesz. Kompilator pozwala na kompilację, ponieważ Wyjątek arytmetyczny jest niesprawdzonym wyjątkiem.
Przykład:
Jawa
// 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;> >}> }> |
>
dynamiczna tablica w Javie
>
Wyjście
Exception in thread 'main' java.lang.ArithmeticException: / by zero at Main.main(Main.java:5) Java Result: 1>
Krótko mówiąc, niesprawdzone wyjątki to wyjątki środowiska wykonawczego, których nie trzeba przechwytywać ani deklarować w klauzuli rzutów. Te wyjątki są zwykle spowodowane błędami programistycznymi, takimi jak próba dostępu do indeksu spoza zakresu w tablicy lub próba podzielenia przez zero.
Niesprawdzone wyjątki obejmują wszystkie podklasy klasy RuntimeException, a także klasę Error i jej podklasy.
Oto kilka przykładów niesprawdzonych wyjątków w Javie:
1. Wyjątek ArrayIndexOutOfBounds: Ten wyjątek jest zgłaszany podczas próby dostępu do indeksu tablicy, który jest poza dopuszczalnym zakresem.
2. Wyjątek NullPointer: Ten wyjątek jest zgłaszany podczas próby uzyskania dostępu do odwołania do obiektu o wartości null.
3. Wyjątek arytmetyczny: Ten wyjątek jest zgłaszany w przypadku próby podzielenia przez zero lub wykonania nieprawidłowej operacji arytmetycznej.