Zalecane, 2022

Wybór Redakcji

Różnica między błędem i wyjątkiem w Javie

"Throwable" działa jako root dla hierarchii błędów i wyjątków Java. "Błąd" jest krytycznym warunkiem, który nie może być obsługiwany przez kod programu. "Wyjątek" to wyjątkowa sytuacja, którą może obsłużyć kod programu. Istotna różnica między błędem i wyjątkiem jest spowodowana błędem spowodowanym brakiem zasobów systemowych, a wyjątek spowodowany jest przez Twój kod. Przeanalizujmy inne różnice między błędem i wyjątkiem wraz z tabelą porównawczą.

Wykres porównania

Podstawa do porównaniaBłądWyjątek
PodstawowyBłąd spowodowany jest brakiem zasobów systemowych.Wyjątek jest spowodowany przez kod.
PoprawaBłąd jest nieodwracalny.Wyjątek można odzyskać.
Słowa kluczoweNie ma sposobu, aby obsłużyć błąd przez kod programu.Wyjątki są obsługiwane za pomocą trzech słów kluczowych "try", "catch" i "throw".
Konsekwencje
Po wykryciu błędu program zakończy się nieprawidłowo.Wykryto wyjątek, który jest odpowiednio rzucany i wychwytywany przez słowa kluczowe "rzut" i "złap".
RodzajeBłędy są klasyfikowane jako niezaznaczone.Wyjątki są klasyfikowane jako zaznaczone lub niezaznaczone.
PakietW Javie błędy są zdefiniowane jako pakiet "java.lang.Error".W Javie wyjątki są zdefiniowane w "java.lang.Exception".
PrzykładOutOfMemory, StackOverFlow.Sprawdzone wyjątki: NoSuchMethod, ClassNotFound.
Niezaznaczone wyjątki: NullPointer, IndexOutOfBounds.

Definicja błędu

" Error " jest podklasą wbudowanej klasy "Throwable". Błędy są krytycznymi warunkami, które występują z powodu braku zasobów systemowych i nie mogą być obsługiwane przez kod programu. Błędy nie mogą być odzyskane w żaden sposób, ponieważ nie można ich utworzyć, rzucić, złapać lub odpowiedzieć. Błędy są spowodowane z powodu katastrofalnej awarii, której zazwyczaj nie można obsłużyć w programie.

Błędy są zawsze niezaznaczone, ponieważ kompilator nie ma żadnej wiedzy o jego wystąpieniu. Błędy zawsze występują w środowisku wykonawczym. Błąd można wyjaśnić za pomocą przykładu, program zawiera błąd przepełnienia stosu, błąd braku pamięci lub błąd awarii systemu, ten rodzaj błędu jest spowodowany przez system. Kod nie odpowiada za takie błędy. Konsekwencją wystąpienia błędu jest nieprawidłowe zakończenie programu.

Definicja wyjątku

"Wyjątek" to także podklasa wbudowanej klasy "Throwable". Wyjątkami są wyjątkowe warunki występujące w środowisku wykonawczym. Najczęściej wyjątki są powodowane przez kod naszego programu. Jednak wyjątki mogą być obsługiwane przez sam program, ponieważ wyjątki można odzyskać. Wyjątki są obsługiwane za pomocą trzech słów kluczowych "try", "catch", "throw". Składnia zapisu wyjątku to:

 spróbuj {// napisz tutaj swój kod} Złap (typ wyjątku) {// wpisz tutaj swój kod} 

W powyższym kodzie, kod napisany w bloku try jest kodem, który chcesz monitorować dla wyjątku. Jeśli wyjątek wystąpi w bloku try, zostanie zgłoszony za pomocą słowa kluczowego "throw". Wyrzucony wyjątek może zostać przechwycony przez blok "catch" powyższego kodu. "Typ wyjątku" to typ wyjątku, który się pojawił.

W prostych słowach możemy powiedzieć, że błędy popełnione z powodu niewłaściwego kodu nazywane są wyjątkami. Na przykład, jeśli żądana klasa nie zostanie znaleziona lub nie zostanie znaleziona żądana metoda. Tego rodzaju wyjątki wynikają z kodu w programie; system nie odpowiada za tego rodzaju wyjątki. Wyjątki są klasyfikowane jako "sprawdzone" i "niezaznaczone". Niezaznaczone wyjątki nie mają wiedzy o kompilatorze, ponieważ występują w czasie wykonywania, podczas gdy kompilator ma wiedzę o sprawdzanych wyjątkach, ponieważ są one znane kompilatorowi podczas kompilacji.

Kluczowe różnice w błędzie i wyjątku

  1. Błąd występuje tylko wtedy, gdy zasoby systemowe są niewystarczające, podczas gdy wyjątek jest spowodowany, gdy kod ma jakiś problem.
  2. Nie można odzyskać błędu, podczas gdy wyjątek można odzyskać, przygotowując kod do obsługi wyjątku.
  3. Błąd nigdy nie może być obsłużony, ale wyjątek może być obsłużony przez kod, jeśli kod rzucający wyjątek jest zapisany wewnątrz bloku prób i catch.
  4. Jeśli wystąpi błąd, program zostanie nieprawidłowo zakończony. Z drugiej strony, jeśli wystąpi wyjątek, program wyrzuci wyjątek i zostanie obsłużony przy użyciu bloku prób i catch.
  5. Błędy są typu niezaznaczonego, tzn. Błąd nie ma wiedzy o kompilatorach, podczas gdy wyjątek jest klasyfikowany jako zaznaczony i niezaznaczony.
  6. Błędy są zdefiniowane w pakiecie java.lang.Error, natomiast wyjątek jest zdefiniowany jako java.lang.Exception.

Wniosek:

Wyjątki są wynikiem błędów popełnionych przy kodowaniu programu, a błędy są wynikiem nieprawidłowego działania systemu

Top