Welcome to Our Website

Wyjątki zaznaczone i niezaznaczone w Javie z przykładami

istnieją dwa typy WYJĄTKÓW: wyjątek zaznaczony i wyjątek niezaznaczony. W tym przewodniku omówimy je. Główną różnicą między wyjątkami zaznaczonymi i niezaznaczonymi jest to, że wyjątki zaznaczone są sprawdzane w czasie kompilacji, podczas gdy wyjątki niezaznaczone są sprawdzane w czasie wykonywania.

jakie są wyjątki sprawdzone?

zaznaczone wyjątki są sprawdzane podczas kompilacji., Oznacza to, że jeśli metoda rzuca zaznaczony wyjątek, to powinna obsłużyć wyjątek za pomocą bloku try-catch lub powinna zadeklarować wyjątek za pomocą słowa kluczowego throws, w przeciwnym razie program wyda błąd kompilacji.

pozwala to zrozumieć za pomocą przykładu:

zaznaczony przykład wyjątku

w tym przykładzie odczytujemy plik myfile.txt I wyświetlamy jego zawartość na ekranie. W tym programie są trzy miejsca, w których wyrzucany jest sprawdzony wyjątek, jak wspomniano w komentarzach poniżej., FileInputStream, który jest używany do określenia ścieżki i nazwy pliku, wyrzuca FileNotFoundException. Metoda read (), która odczytuje zawartość pliku rzuca IOException I metoda close (), która zamyka strumień wejściowy Pliku, również rzuca IOException.

Wyjście:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Unhandled exception type FileNotFoundExceptionUnhandled exception type IOExceptionUnhandled exception type IOException

Dlaczego ten błąd kompilacji? Jak wspomniałem na początku, wyjątki sprawdzane są sprawdzane podczas kompilacji. Ponieważ nie obsłużyliśmy/nie zadeklarowaliśmy WYJĄTKÓW, nasz program podał błąd kompilacji.
Jak rozwiązać błąd?, Istnieją dwa sposoby uniknięcia tego błędu. Zobaczymy obie drogi jeden po drugim.

Metoda 1: Zadeklaruj wyjątek za pomocą słowa kluczowego throws.
ponieważ wiemy, że wszystkie trzy wystąpienia sprawdzonych WYJĄTKÓW znajdują się wewnątrz metody main (), więc jednym ze sposobów uniknięcia błędu kompilacji jest zadeklarowanie wyjątku w metodzie za pomocą słowa kluczowego throws. Możesz myśleć, że nasz kod rzuca FileNotFoundException i IOException, to dlaczego deklarujemy samą IOException. Powodem jest to, że IOException jest klasą nadrzędną FileNotFoundException, więc domyślnie obejmuje to., Jeśli chcesz, możesz zadeklarować je w ten sposób public static void main(String args) throws IOException, FileNotFoundException.

Output:
zawartość pliku jest wyświetlana na ekranie.

Metoda 2: obsłuż je za pomocą bloków try-catch.
podejście, które zastosowaliśmy powyżej, wcale nie jest dobre. Nie jest to najlepsza praktyka obsługi wyjątków. Powinieneś podać sensowny komunikat dla każdego typu wyjątku, aby ktoś mógł łatwo zrozumieć błąd. Kod powinien wyglądać następująco:

Ten kod będzie działał poprawnie i wyświetli zawartość pliku.,

Oto kilka innych sprawdzonych WYJĄTKÓW –

  • SQLException
  • IOException
  • ClassNotFoundException
  • InvocationTargetException

jakie są wyjątki niezaznaczone?

niezaznaczone wyjątki nie są sprawdzane podczas kompilacji. Oznacza to, że jeśli twój program wyrzuca niezaznaczony wyjątek i nawet jeśli nie obsłużyłeś/nie zadeklarowałeś tego wyjątku, program nie wyświetli błędu kompilacji. W większości przypadków wyjątek ten występuje z powodu złych danych dostarczonych przez użytkownika podczas interakcji użytkownik-program., Do programisty należy ocena warunków z wyprzedzeniem, które mogą powodować takie wyjątki i odpowiednio je obsługiwać. Wszystkie niezaznaczone wyjątki są bezpośrednimi podklasami klasy RuntimeException.

Lets uncheck Exception Example

uncheck Exception

Jeśli skompilujesz ten kod, skompiluje się on pomyślnie, jednak gdy go uruchomisz, wyrzuciArithmeticException. To wyraźnie pokazuje, że niezaznaczone wyjątki nie są sprawdzane w czasie kompilacji, występują w czasie wykonywania. Zobaczmy inny przykład.,

ten kod również skompilowałby się pomyślnie, ponieważ ArrayIndexOutOfBoundsException jest również niezaznaczonym wyjątkiem.
uwaga :nie oznacza to, że kompilator nie sprawdza tych wyjątków, więc nie powinniśmy się nimi zajmować. W rzeczywistości powinniśmy obchodzić się z nimi ostrożniej. Na przykład w powyższym przykładzie powinien pojawić się komunikat o wyjątku dla użytkownika, który próbuje wyświetlić wartość, która nie istnieje w tablicy, aby użytkownik mógł naprawić problem.,

Output:

The specified index does not exist in array. Please correct the error.

Here are the few unchecked exception classes:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ArithmeticException
  • IllegalArgumentException
  • NumberFormatException

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *