Wyjątki
Stacktrace wyjątku jest zapisywany w momencie tworzenia wyjątku. Jeśli wyjątek jest utworzony i przekazany do innej metody która go rzuca wtedy wyświetlony stacktrace będzie odpowiadał miejscu w którym był tworzony nie rzucony.
toString()
wyświetla nazwę wyjątku i jego tekst
getMessage()
zwraca wiadomość
stacktrace jest wyświetlany przez printStackTrace()
.
Tylko ostatni z rzucanych wyjątków jest propagowany dalej. Rzucanie wyjątku w catch
i kolejnego w finally
skutkuje rzuceniem drugiego. W tej sytuacji jeśli to sprawdzany wyjątek to musi być zadeklarowany w sygnaturze.
throws
w nazwie metody może być „na zapas” ale jeśli jest catch sprawdzanego wyjątku wyjątek musi być możliwy do rzucenia w try.
Jeśli wyjątek to Exception
to powyższa zasada nie obowiązuje. Wtedy Exception
jest traktowany jako RuntimeException
bo może nim być.
Jeśli wywoływana jest nadpisana metoda której bazowa metoda rzuca wyjątek a nadpisująca nie wtedy referencja ma znaczenie – referencja do bazowej wymaga try catch; referencja do rozszerzającej nie.
Można łapać i deklarować RuntimeException.
Można łapać i deklarować Errory.
Źródła:
„OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808” Jeanne Boyarsky, Scott Selikoff
„JA+ V8 for Oracle Certified Associate – Java SE8 Programmer I” http://enthuware.com