Zaznaczony i niezaznaczony wyjątek

Anonim

Obsługa wyjątków w Javie jest jednym z potężnych mechanizmów radzenia sobie z konkretnymi błędami, które pojawiają się w sekwencji kodu w środowisku wykonawczym. Wyjątkiem jest tylko błąd środowiska wykonawczego, który zakłóca normalny przepływ aplikacji.

Zwykle występuje w kawałku kodu, a gdy to robi, tworzony jest obiekt reprezentujący ten wyjątek rzucony w metodzie, która go spowodowała. W rezultacie program lub aplikacja jest zakłócona, co powoduje nieprawidłowe działanie 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 końcu zobaczymy różnicę między tymi dwoma.

Co to jest wyjątek sprawdzany w Javie?

Są to wyjątki, które są sprawdzane i obsługiwane w czasie kompilacji. Java definiuje kilka klas wyjątków w standardowym pakiecie java.lang, a najczęstszymi wyjątkami są podklasy standardowego typu RuntimeException.

Te wyjątki, które występują w obszarach poza bezpośrednią kontrolą programu, są określane jako wyjątki sprawdzone. Jeśli metoda rzuca sprawdzony wyjątek w czasie kompilacji, który nie może obsłużyć samego siebie, musi obsłużyć wyjątek w a złapać {} zablokować lub zadeklarować wyjątek za pomocą rzuca słowo kluczowe, w przeciwnym razie wystąpi błąd kompilacji. Kompilator sprawdza typ obiektu wyjątku dla każdego rzucać oświadczenie i jeśli jest zaznaczone, kompilator sprawdza kod źródłowy, aby upewnić się, że wyjątek jest obsługiwany w metodzie, w której został zgłoszony lub jest zadeklarowany, aby mógł być dalej przetwarzany.

Wszystkie wyjątki opisane przez Wyjątek które są jej bezpośrednimi podklasami z wyjątkiem RuntimeException nazywane są sprawdzonymi wyjątkami. Teraz kiedy używać sprawdzonego wyjątku? Możesz użyć sprawdzonego wyjątku, gdy wiesz dokładnie, co zrobić, gdy Wyjątek występuje lub kiedy szanse na porażkę są większe. Niektóre przykłady sprawdzanych wyjątków w bibliotece Java obejmują wyjątek IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException itp.

Co to jest wyjątek niezaznaczony w Javie?

Są to wyjątki, które nie są sprawdzane podczas kompilacji. Niezaznaczone Wyjątek reprezentuje warunek, który ogólnie odzwierciedla błędy w logice programu i których nie można odzyskać w czasie wykonywania.

W prostych słowach, niezaznaczony wyjątek jest wyjątkiem, który nie jest przechwycony przez próbuj złapać blok. Nie trzeba ich wyraźnie pochwycić. W rzeczywistości, gdy wystąpi niesprawdzony wyjątek, Java obsługuje wyjątek automatycznie. Niezaznaczone wyjątki najczęściej występują z powodu błędów programistycznych, takich jak podczas uzyskiwania dostępu do elementu poza połączeniem macierzy lub metody dostępu obiektu zerowego. W Javie wszystkie wyjątki pod naporem są sprawdzanymi wyjątkami, a wyjątki są bezpośrednimi podklasami Błąd i RuntimeException są niezaznaczonymi wyjątkami.

Najlepszą częścią niesprawdzonego wyjątku jest to, że nie zmniejsza czytelności kodu przy zachowaniu kodu klienta. Niektóre przykłady niezaznaczonych wyjątków obejmują wyjątek ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itp.

Różnica między Wyjątkiem zaznaczonym i Niezaznaczonym

Definicja sprawdzonego i niezaznaczonego wyjątku

Zaznaczone i niezaznaczone Wyjątek stanowią dwa typy wyjątków w języku Java w celu zapewnienia normalnego przepływu aplikacji. Oba służą temu samemu celowi, który ma obsługiwać wyjątki w Javie i chociaż nie ma różnicy w funkcjonalności, nie ma jednej reguły określającej, kiedy używać sprawdzone i kiedy używać niesprawdzonego wyjątku. Sprawdzany wyjątek jest wyjątkiem, który jest sprawdzany podczas kompilacji, natomiast wyjątek niezaznaczony to ten, który nie jest sprawdzany podczas kompilacji.

Podstawy sprawdzonego i niezaznaczonego wyjątku

Sprawdzony wyjątek odnosi się do nieprawidłowych scenariuszy, które występują poza bezpośrednią kontrolą programu, podczas gdy wyjątek odznaczony odnosi się do błędów w programie lub błędów w logice programu, których nie można odzyskać w czasie wykonywania.

Obsługa wyjątków

Jeśli metoda wyśle ​​sprawdzony wyjątek, kompilator sprawdzi, czy metoda obsługuje ten wyjątek, blokując try-catch, lub określa wyjątek, używając słowa kluczowego throws. Jeśli metoda nie dostarcza kodu obsługi, wyświetli błąd kompilacji. Wręcz przeciwnie, program kompiluje się dobrze, ponieważ kompilator nie sprawdza wyjątków niezaznaczonych w czasie kompilacji.

Przyczyna zaznaczonego i niezaznaczonego wyjątku

Wyjątki, które nie pochodzą od środowiska RunTimeException, są często obsługiwane, podczas gdy wyjątki występujące w środowisku wykonawczym są rzadko obsługiwane. Wyjątek sprawdzany występuje, gdy szanse na niepowodzenie są zbyt wysokie. Niezaznaczone wyjątki występują z reguły z powodu błędów programistycznych. Wszystkie wyjątki w klasach RuntimeException i Error są niezaznaczonymi wyjątkami, podczas gdy wszystko inne pod działaniem są sprawdzane wyjątkami.

Przykłady sprawdzonego i niezaznaczonego wyjątku

Niektóre przykłady sprawdzanych wyjątków to IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException i inne. Przykłady niezaznaczonych wyjątków obejmują: wyjątek NullPointerException, wyjątek arytmetyczny, wyjątek ArrayIndexOutOfBound, wyjątek IllegalArgumentException, wyjątek IllegalStateException, wyjątek ArrayStoreException, SecurityException itp.

Sprawdzone i niezaznaczone wyjątki: tabela porównawcza

Podsumowanie sprawdzonego i niezaznaczonego wyjątku

Zaznaczone i niezaznaczone Wyjątek stanowią dwa typy wyjątków, które istnieją w Javie. Mimo że funkcjonalność jest taka sama dla obu wyjątków, mają one sprawiedliwy udział w różnicach. Główną różnicą między sprawdzonymi i niezaznaczonymi wyjątkami jest to, że pierwszy jest sprawdzany przez kompilator, podczas gdy drugi znika z powiadomienia o kompilatorze. Wyjątki, które są sprawdzane i obsługiwane w czasie kompilacji, są sprawdzanymi wyjątkami, podczas gdy wyjątki, które nie są sprawdzane i obsługiwane w czasie kompilacji, są niezaznaczonymi wyjątkami. W tym artykule wyjaśniono, co jest zaznaczone, a co nie jest zaznaczone, kiedy należy ich używać, i wyjaśnia różnicę między nimi.