Wyjątki -informacje warte zapamiętania

W poście tym zebrałem informacje, które warto zapamiętać na temat wyjątków w Javie. Wyjątek wskazuje na to, że coś nieoczekiwanego zostało wykonane w programie. Metoda tego typu służy do zaprogramowania to w jaki sposób aplikacja ma na tego typu zachowanie reagować.

Wyjątki w naszym kodzie tworzymy za pomocą throw new exception()

Typy wyjątków

Errors

Rozszerzają klasę  java.lang.Error . Są wywoływane przez JVM. Programista nie powinien zajmować się obsługą błędów tego typu. Błędy z klasy Error są rzadkie, przykłady:
1. ExceptionInInitializerError
2. StackOverflowError
3. NoClassDefFoundError

UNCHECKED exception czyli  java.lang.RuntimeException

Subklasy dziedziczące po klasie java.lang.RuntimeException są wyjątkami typu UNCHECKED. Jest wywoływana przez programistę lub JVM. Jeżeli są wywoływane przez JVM to programista nie powinien zajmować się ich dodatkowa obsługą. W momencie gdy wystąpią w naszej aplikacji łatwiej będzie znaleźć kontekst ich wystąpiania. Popularne wyjątki:
    a. ArithmeticException
    b. ArrayIndexOutOfBoundsException
    c. ClassCastException
    d. IllegalArgumentException
    e. NullPointerException
    f. NumberFormatException
IllegalArgumentException oraz NumberFormatException są wyjątkami typowo wywoływanymi przez programistę, pozostałe są wywoływane przez JVM.

CHECKED exception czyli  java.lang.Exception 

Tego typu wyjątki zawierają wszystkie wyjątki typu java.lang.Exception
oprócz wyjątków typu RuntimeExceptionjava.lang.Exception  są wyjątkami typu CHECKED. Java wymaga aby wyjątki typu CHECKED były obsłużone w naszej aplikacji. Mogą zostać wywołane przez JVM lub programistę. Popularne wyjątki:
1. FileNotFoundException
2. IOException
Inne zasady warte zapamiętania:
1. W przypadku gdy wyrażenie try posiada wiele bloków typu catch może zostać wywołany jedynie ten jeden, który jest zadeklarowany wcześniej.W przypadku gdy występuje blok try i finally to finally ma większy priorytet i to on zostaje wywołany.
2. Kiedy metoda nadpisuje metodę w superklasie lub interfejsie nie można dodawać wyjątków typu Checked exception (java.lang.Exception). Nie można też w klasie dziedziczącej deklarować mniejszą ilość wyjątków
3. Wyjątki w metodach deklarujemy za pomocą słowa: throws.

Dodaj komentarz