Java 8 introduce o modificare de comportament pentru excepţiile de runtime care sunt aruncate de
metodele java.awt.Component.setFocusTraversalKeys(int id, Set<? AWTKeyStroke> keystrokes) şi
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
când argumentul keystrokes conţine obiecte care nu sunt de tipul AWTKeyStroke.
În Java 8, metodele aruncă o ClassCastException în loc de IllegalArgumentException
pentru această eroare.
Această regulă semnalează apelurile la metodele setFocusTraversalKeys şi
setDefaultFocusTraversalKeys când apelul la metodă este înconjurat de o instrucţiune try
cu o clauză catch pentru IllegalArgumentException.
Următorul exemplu arată o metodă setFocusTraversalKeys
care este semnalată.
public static void testSetFocusTraversal(Component comp, int id, Set keys) {
try { comp.setFocusTraversalKeys (id, keys);} catch (IllegalArgumentException iae) {
...
}
Metodele setFocusTraversalKeys şi setDefaultFocusTraversalKeys
încă aruncă IllegalArgumentException din alte motive,
aşa cum este descris în documentaţia Java. Evaluaţi logica din blocul dumneavoastră catch
pentru a vedea dacă trebuie să trataţi şi ClassCastException sau un tip
general de excepţie la runtime.
Pentru informaţii suplimentare despre aceste clase, consultaţi următoarele resurse: