Wykres porównania
Podstawa do porównania | Błąd | Wyjątek |
---|---|---|
Podstawowy | Błąd spowodowany jest brakiem zasobów systemowych. | Wyjątek jest spowodowany przez kod. |
Poprawa | Błąd jest nieodwracalny. | Wyjątek można odzyskać. |
Słowa kluczowe | Nie 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". |
Rodzaje | Błędy są klasyfikowane jako niezaznaczone. | Wyjątki są klasyfikowane jako zaznaczone lub niezaznaczone. |
Pakiet | W Javie błędy są zdefiniowane jako pakiet "java.lang.Error". | W Javie wyjątki są zdefiniowane w "java.lang.Exception". |
Przykład | OutOfMemory, 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
- Błąd występuje tylko wtedy, gdy zasoby systemowe są niewystarczające, podczas gdy wyjątek jest spowodowany, gdy kod ma jakiś problem.
- Nie można odzyskać błędu, podczas gdy wyjątek można odzyskać, przygotowując kod do obsługi wyjątku.
- 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.
- 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.
- Błędy są typu niezaznaczonego, tzn. Błąd nie ma wiedzy o kompilatorach, podczas gdy wyjątek jest klasyfikowany jako zaznaczony i niezaznaczony.
- 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