niedziela, 1 marca 2015

improved exceptions

Tym razem, tematem wziętym pod lupę, będzie łapanie wyjątków, a mianowicie usprawnienia które zostały w tym temacie wprowadzone wraz z nadejściem Javy 7.
Zmiany te nie są jakąś rewolucją, są raczej krokiem ku ewolucji.

Tak więc, pierwszym usprawnieniem jest możliwość łapania więcej niż jednego typu wyjątku w pojedynczym bloku catch.
Prezentuje się to tak: Wcześniej oczywiście, wymagało by to dwóch bloków catch Tak więc, wszystkie typy które zamierzamy łapać, są oddzielone |
Ważne że w momencie w którym nasz blok catch łapie więcej niż jeden typ wyjątku, parametr który jest przekazywany do bloku, zostanie oznaczony jako final, tak więc nie będzie możliwe przypisanie mu innej wartości(nowego obiektu wyjątku) - w przypadku w którym jednak spróbujemy to zrobić, zostaniemy poinformowani że: multi-catch parameter ex may not be assigned


Kolejnym usprawnieniem - w sumie pierwszym, możliwość łapania kilku wyjątków w jednym bloku catch jest raczej nowym ficzerem - tak wiec kolejnym usprawnieniem związanym z wyjątkami, jest możliwość lepszego precyzowania wyjątków które mogą zostać wyrzucone, mianowicie: Widzimy że nasza metoda może wyrzucić Exception, ale tak naprawdę moglibyśmy sprecyzować bardziej, jakie wyjątki zostaną wyrzucone, przecież widać wyraźnie że możliwe są dwie sytuacje: FirstException albo SecondException - Jednak do Javy 7, nie było to możliwe(ponieważ blok catch przyjmuje i wyrzuca Exception), teraz jednak kompilator może faktycznie determinować jakie wyjątki zostaną wyrzucone na podstawie bloku kodu wewnątrz try, tak więc w pełni poprawnym będzie napisanie:
Tak więc miłego łapania wyjątków.

Brak komentarzy:

Prześlij komentarz