Logo pl.removalsclassifieds.com

Różnica między zaznaczonym a niesprawdzonym wyjątkiem (z tabelą)

Spisu treści:

Anonim

Sprawdzanie wyjątków jest jedną z najważniejszych rzeczy w programowaniu i testowaniu oprogramowania. Zaznaczony i niezaznaczony wyjątek zatrzymuje program przed uruchomieniem, gdy próbuje złapać błąd lub błąd. Co więcej, uważa się, że to programista jest odpowiedzialny za upewnienie się, że te błędy nigdy się nie pojawią. Zarówno zaznaczony, jak i niesprawdzony wyjątek są wyjątkowo podobne, ale różnią się od siebie.

Sprawdzony vs niesprawdzony wyjątek

Różnica między zaznaczonymi i niesprawdzonymi wyjątkami polega na tym, że zaznaczone wyjątki to te, które muszą zostać przechwycone i obsłużone przez instrukcję checks() lub spowodują, że program zakończy działanie i wydrukuje ślad stosu, podczas gdy niesprawdzone wyjątki powinny nie trzeba ich w ogóle przechwytywać ani obsługiwać, ponieważ obowiązkiem programisty jest upewnienie się, że te błędy nigdy się nie pojawią.

Wyjątek Checked jest specyficznym typem wyjątku, który zatrzymuje działanie programu, dopóki nie zostanie przechwycony przez blok catch lub określony w klauzuli throws metody. Co więcej, wyjątek Checked jest przechwytywany i obsługiwany przez instrukcję checks() lub spowoduje zakończenie działania programu i wydrukowanie śladu stosu.

Jeśli kod, który spowodował wyjątek, nie został poprawnie przetestowany, może to spowodować dziwne niesprawdzone wyjątkowe błędy, które mogą być trudne do znalezienia i naprawienia. Co więcej, niesprawdzone wyjątki nie powinny być w ogóle przechwytywane ani obsługiwane, ponieważ obowiązkiem programisty jest upewnienie się, że te błędy nigdy się nie pojawią.

Tabela porównawcza między Zaznaczony i niesprawdzony wyjątek

Parametry porównania

Sprawdzony wyjątek

Niesprawdzony wyjątek

Definicja

Sprawdzone wyjątki to te, które muszą zostać przechwycone i obsłużone przez instrukcje checks(). Niesprawdzone wyjątki w ogóle nie powinny być przechwytywane ani obsługiwane.
Występowanie

Sprawdzone wyjątki muszą być obsługiwane przez blok catch w czasie kompilacji. Nieprzechwycone wyjątki, znane również jako wyjątki środowiska wykonawczego, to niesprawdzone wyjątki.
Obsługa błędów

Zaznaczony wyjątek zatrzymuje program przed próbą wyłapania błędu lub błędu. Obowiązkiem programisty jest upewnienie się, że te błędy nigdy się nie pojawią.
Klasy wyjątków

Ma wyjątkowe zajęcia. Nie ma żadnych klas wyjątkowych lub nie stanowi większej części klas wyjątkowych.
Przykład

OutOfMemoryError, NullPointerException i StackOverflowError. IndexOutOfBoundsException

Co to jest zaznaczony wyjątek?

Sprawdzone wyjątki są ściśle związane z testowaniem oprogramowania, ponadto sprawdzony wyjątek to wyjątek, który musi zostać obsłużony, w przeciwnym razie program zakończy działanie. Oznacza to, że kod następujący po instrukcji throw nie zostanie wykonany, jeśli żaden blok catch nie obsługuje wyjątku. Zaznaczone wyjątki służą dwóm celom, polegającym na tym, że uniemożliwiają kontynuowanie programu po wystąpieniu błędu i mogą dostarczyć informacje debugowania o tym, gdzie znaleźć ten błąd.

Kompilator nie zmusza programisty do obsługi wyjątku, ale każda klasa, która rozszerza inną klasę, powinna również rozszerzać lub implementować wszystkie sprawdzone wyjątki. Jeśli tak się nie stanie, kompilacja klasy rozszerzającej kończy się niepowodzeniem z błędem czasu kompilacji stwierdzającym, że musi obsłużyć wszystkie wyjątki sprawdzane przez nadklasy. Zapobiega to wykorzystywaniu dziedziczenia do obchodzenia wbudowanych trybów awarii.

Zgłoszony wyjątek jest przekazywany do debugera w środowisku Eclipse lub do systemu operacyjnego, który następnie normalnie kończy działanie programu. System operacyjny drukuje ślad stosu. Ślad stosu zawiera informacje dla każdego wywołania metody w kolejności, w jakiej zostały wywołane. Dzięki temu programista może znaleźć, gdzie w kodzie lub gdzie w przepływie wykonywania kodu wystąpił wyjątek.

Co to jest niesprawdzony wyjątek?

Istnieją niesprawdzone wyjątki, aby umożliwić programistom bardziej elastyczne i wydajne programowanie. Java została zaprojektowana, aby umożliwić programistom tworzenie aplikacji, które efektywnie wykorzystują zasoby i unikają pojawienia się impasu. Niesprawdzone wyjątki można wyeliminować dzięki starannemu projektowaniu i praktykom kodowania. Jednak wszystkie inne wyjątki z wyjątkiem NullPointerException, które występują w kodzie Java, są uważane za niesprawdzone.

Niesprawdzone wyjątki w ogóle nie powinny być przechwytywane ani obsługiwane. Co więcej, są sposobem, aby kod wyższego poziomu powiedział kodowi niższego poziomu, że zrobi coś, co nie jest bezpieczne dla wątków, ale nie spowoduje problemów, jeśli w danym momencie działa tylko jeden wątek, na przykład jak aktualizowanie niektórych danych lub renderowanie niektórych grafik na ekranie.

Używanie niesprawdzonych wyjątków to ryzykowna propozycja. Jeśli klasa ma zgłosić niesprawdzony wyjątek, to kto używa tej klasy, musi być tego świadomy i mieć pewne rygorystyczne metody radzenia sobie z nim. Na przykład programista może chcieć odczytać niektóre dane z pliku, a następnie ponownie je zapisać, a tego rodzaju funkcjonalność nie wymaga synchronizacji. Całkowicie dopuszczalne jest, aby aplikacja dwukrotnie odczytywała te same dane w dwóch różnych wątkach bez negatywnego wpływu na wydajność lub stabilność systemu.

Główne różnice między zaznaczonym i niesprawdzonym wyjątkiem

Wniosek

Sprawdzony wyjątek to wyjątek, który musi zostać obsłużony, w przeciwnym razie program zakończy działanie. Jednak niesprawdzone wyjątki to te, które wykonują funkcje zatrzymania dla wszystkich wątków. Zaznaczony i niesprawdzony wyjątek jest sygnałem błędu w kodzie. Dzieje się tak, gdy kod próbuje zrobić coś nieoczekiwanego. Jeśli kod, który spowodował wyjątek, nie został poprawnie przetestowany, może powodować dziwne błędy, które mogą być trudne do znalezienia i naprawienia. W niektórych przypadkach programista może nawet potrzebować przepisać cały program od zera. Co więcej, zaznaczone i niesprawdzone wyjątki są ściśle związane z testowaniem oprogramowania.

Bibliografia

Różnica między zaznaczonym a niesprawdzonym wyjątkiem (z tabelą)