Obsługa wyjątków w Javie jest jednym z potężnych mechanizmów do obsługi określonych błędów pojawiających się w sekwencji kodu w czasie wykonywania. Wyjątkiem jest tylko błąd czasu wykonywania, który zakłóca normalny przepływ aplikacji.
Zwykle występuje w kodzie, a gdy tak się dzieje, tworzony jest obiekt reprezentujący ten wyjątek i rzucony w metodzie, która to spowodowała. W rezultacie program lub aplikacja jest zakłócana, powodując nieprawidłowe zakończenie działania aplikacji, co nie jest zalecane. Właśnie dlatego te wyjątki mają być obsługiwane i tutaj pojawia się mechanizm obsługi wyjątków.
Istnieją dwa typy wyjątków, które istnieją w Javie - wyjątek sprawdzony i niezaznaczony. W tym artykule omówimy szczegółowo, co jest zaznaczone i odznaczone wyjątek i kiedy z nich korzystać, a na koniec zobaczymy różnicę między tymi dwoma.
Są to wyjątki sprawdzane i obsługiwane w czasie kompilacji. Java definiuje kilka klas wyjątków w pakiecie standardowym java.lang, a najczęstszymi wyjątkami są podklasy typu standardowego RuntimeException.
Te wyjątki występujące w obszarach poza bezpośrednią kontrolą programu są znane jako sprawdzone wyjątki. Jeśli metoda rzuca sprawdzony wyjątek w czasie kompilacji, który nie może sam go obsłużyć, a następnie musi obsłużyć wyjątek w pliku złapać zablokuj lub zadeklaruj wyjątek za pomocą rzuca słowo kluczowe, w przeciwnym razie spowoduje błąd kompilacji. Kompilator sprawdza typ obiektu wyjątku dla każdego rzucać instrukcja, a jeśli pokazuje zaznaczone, kompilator sprawdza kod źródłowy, aby upewnić się, że wyjątek jest obsługiwany w metodzie, w której jest zgłaszany lub deklarowany, aby można go było dalej obsłużyć.
Wszystkie wyjątki opisane przez Wyjątek które są jego bezpośrednimi podklasami, z wyjątkiem RuntimeException nazywane są sprawdzonymi wyjątkami. Teraz, kiedy użyć sprawdzonego wyjątku? Możesz wybrać sprawdzony wyjątek, gdy dokładnie wiesz, co zrobić, gdy Wyjątek występuje lub gdy prawdopodobieństwo niepowodzenia jest większe. Niektóre przykłady sprawdzonych wyjątków w bibliotece Java obejmują IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException itp..
Są to wyjątki, które nie są sprawdzane podczas kompilacji. Niezaznaczony wyjątek reprezentuje warunek, który ogólnie odzwierciedla błędy w logice programu i których nie można odzyskać w czasie wykonywania.
Mówiąc prościej, niezaznaczony wyjątek to wyjątek, który nie jest wyłapany w próbuj złapać blok. Nie trzeba ich jednoznacznie łapać. W rzeczywistości, gdy wystąpi niesprawdzony wyjątek, Java automatycznie obsługuje wyjątek. Niezaznaczone wyjątki występują głównie z powodu błędów programowania, takich jak dostęp do elementu poza wiązaniem tablic lub metoda dostępu do obiektu zerowego. W Javie wszystkie wyjątki w ramach rzucanego są sprawdzane wyjątki, podczas gdy wyjątki, które są bezpośrednimi podklasami Błąd i RuntimeException są niesprawdzonymi wyjątkami.
Najlepszą częścią niezaznaczonego wyjątku jest to, że nie zmniejsza to czytelności kodu, jednocześnie utrzymując kod klienta w czystości. Niektóre przykłady niesprawdzonych wyjątków obejmują ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itp..
Wyjątkiem sprawdzonym i niezaznaczonym są dwa typy wyjątków w Javie, aby zapewnić normalny przepływ aplikacji. Oba służą temu samemu celowi, jakim jest obsługa wyjątków w Javie i chociaż nie ma różnicy w funkcjonalności, nie ma jednej reguły określającej, kiedy używać sprawdzonego, a kiedy używać niesprawdzonego wyjątku. Sprawdzony wyjątek to wyjątek sprawdzany w czasie kompilacji, podczas gdy niesprawdzony wyjątek to taki, który nie jest sprawdzany w czasie kompilacji.
Sprawdzony wyjątek odnosi się do niepoprawnych scenariuszy, które występują poza bezpośrednią kontrolą programu, podczas gdy niezaznaczony wyjątek odnosi się do błędów w programie lub błędów w logice programu, których nie można odzyskać w czasie wykonywania.
Jeśli metoda zgłosi sprawdzony wyjątek, kompilator sprawdzi, czy metoda obsługuje ten wyjątek za pomocą bloku try-catch, lub określi wyjątek za pomocą słowa kluczowego throws. Jeśli metoda nie zapewnia kodu obsługi, wyświetli błąd kompilacji. Wręcz przeciwnie, program kompiluje się dobrze, ponieważ kompilator nie sprawdza niesprawdzonych wyjątków w czasie kompilacji.
Wyjątki, które nie są wyprowadzone z RunTimeException, są często obsługiwane, podczas gdy wyjątki występują w czasie wykonywania są rzadko obsługiwane. Sprawdzony wyjątek występuje, gdy szanse niepowodzenia są zbyt duże. Z drugiej strony, niesprawdzony wyjątek występuje głównie z powodu błędów programistycznych. Wszystkie wyjątki w klasach RuntimeException i Error są odznaczonymi wyjątkami, podczas gdy wszystkie inne w ramach rzucanego są sprawdzane wyjątki.
Niektóre przykłady sprawdzonych wyjątków to IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException i inne. Przykłady niezaznaczonych wyjątków obejmują NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itp..
Sprawdzone i niezaznaczone wyjątki to dwa typy wyjątków istniejących w Javie. Chociaż funkcjonalność jest taka sama dla obu wyjątków, mają one swój sprawiedliwy udział w różnicach. Główną różnicą między sprawdzonymi i niesprawdzonymi wyjątkami jest to, że pierwszy sprawdzany jest przez kompilator, podczas gdy drugi wymyka się uwadze kompilatora. Wyjątki, które są sprawdzane i obsługiwane w czasie kompilacji, są sprawdzanymi wyjątkami, natomiast wyjątki, które nie są sprawdzane i obsługiwane w czasie kompilacji, są wyjątkami odznaczonymi. W tym artykule wyjaśniono, co jest zaznaczone, a co niesprawdzony wyjątek, kiedy ich używać, a także wyjaśniono różnicę między nimi.