Różnica między błędem a wyjątkiem w Javie
Zawartość
„Throwable” działa jako rdzeń hierarchii błędów i wyjątków Javy. „Błąd” jest warunkiem krytycznym, którego kod programu nie może rozwiązać. „Wyjątek” to wyjątkowa sytuacja, którą można rozwiązać za pomocą kodu programu. Istotną różnicą między błędem a wyjątkiem jest to, że błąd jest spowodowany brakiem zasobów systemowych i wyjątek jest spowodowany przez twój kod. Przeanalizujmy inne różnice między błędem a wyjątkiem wraz z tabelą porównawczą.
- Wykres porównania
- Definicja
- Kluczowe różnice
- Wniosek
Wykres porównania
Podstawa do porównania | Błąd | Wyjątek |
---|---|---|
Podstawowy | Błąd jest spowodowany brakiem zasobów systemowych. | Przyczyną jest wyjątek z powodu kodu. |
Poprawa | Błąd jest nie do naprawienia. | 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: „spróbuj”, „złap” i „wyrzuć”. |
Konsekwencje | Po wykryciu błędu program zostanie nieprawidłowo zakończony. | Po wykryciu wyjątku jest on odpowiednio zgłaszany i przechwytywany przez słowa kluczowe „throw” i „catch”. |
Rodzaje | Błędy są klasyfikowane jako niezaznaczone. | Wyjątki są klasyfikowane jako zaznaczone lub niezaznaczone. |
Pakiet | W Javie błędy są zdefiniowane w pakiecie „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
“Błąd”Jest podklasą wbudowanej klasy„ Throwable ”. Błędy to krytyczne warunki, które występują z powodu braku zasobów systemowych i nie można ich naprawić za pomocą kodu programu. Błędy nie można odzyskać w żaden sposób, ponieważ nie można ich utworzyć, wyrzucić, złapać ani odpowiedzieć. Błędy są spowodowane katastrofalną awarią, której zwykle nie może naprawić Twój program.
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 ma 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 ponosi odpowiedzialności za takie błędy. Konsekwencją wystąpienia błędu jest nieprawidłowe zakończenie programu.
Definicja wyjątku
„Wyjątek” jest także podklasą wbudowanej klasy „Throwable”. Wyjątkami są wyjątkowe warunki występujące w środowisku wykonawczym. Większość przypadków wyjątków wynika z kodu naszego programu, ale wyjątki mogą być obsługiwane przez sam program, ponieważ wyjątki można odzyskać. Wyjątki są obsługiwane przy użyciu trzech słów kluczowych: „spróbuj”, „złap”, „wyrzuć”. Składnia pisania wyjątku jest następująca:
spróbuj {// wpisz tutaj swój kod} Złap (typ wyjątku) {// wpisz swój kod tutaj}
W powyższym kodzie kod zapisany w bloku try jest kodem, który chcesz monitorować pod kątem wyjątku. Jeśli wyjątek występuje w bloku try, jest on zgłaszany za pomocą słowa kluczowego „throw”. Zgłoszony wyjątek może zostać przechwycony przez blok „catch” powyższego kodu. „Typ wyjątku” to typ wyjątku, który wystąpił.
W prostych słowach możemy powiedzieć, że błędy powstałe z powodu niewłaściwego kodu nazywane są wyjątkami. Na przykład jeśli nie znaleziono żądanej klasy lub nie znaleziono żądanej metody. Tego rodzaju wyjątki wynikają z kodu w programie; system nie ponosi odpowiedzialności za tego rodzaju wyjątki. Wyjątki są klasyfikowane jako „zaznaczone” i „niezaznaczone”. Niezaznaczone wyjątki nie znają kompilatora, ponieważ występują one w czasie wykonywania, podczas gdy kompilator ma wiedzę o sprawdzonych wyjątkach, ponieważ są one znane kompilatorowi podczas kompilacji.
- Błąd występuje tylko wtedy, gdy zasoby systemowe są niewystarczające, a wyjątek powstaje, jeśli kod ma jakiś problem.
- Błąd nigdy nie może zostać odzyskany, 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 kod może obsłużyć wyjątek, jeśli kod zgłaszający wyjątek jest zapisany w bloku try-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 jest obsługiwany za pomocą bloku try-catch.
- Błędy są typu niezaznaczonego, tj. Nie ma wiedzy o kompilatorach, podczas gdy wyjątek jest klasyfikowany jako sprawdzony i niezaznaczony.
- Błędy są zdefiniowane w pakiecie java.lang.Error, natomiast wyjątek to java.lang.Exception.
Wniosek:
Wyjątki stanowią wyniki błędów popełnionych w kodowaniu programu, a błędy wynikają z niewłaściwego funkcjonowania systemu