O Java 8 introduz uma mudança de comportamento para as exceções de tempo de execução que são lançadas pelos métodos
java.awt.Component.setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) e
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
quando o argumento keystrokes contém objetos que não são do tipo AWTKeyStroke.
No Java 8, os métodos lançam um ClassCastException em vez de IllegalArgumentException
para esse erro.
Essa regra sinaliza chamadas para os métodos setFocusTraversalKeys e
setDefaultFocusTraversalKeys quando a chamada de método é circundada por uma instrução
try com uma cláusula catch para IllegalArgumentException.
O exemplo a seguir mostra um método setFocusTraversalKeys
que está sinalizado.
public static void testSetFocusTraversal(Component comp, int id, Set keys) {
tente { comp.setFocusTraversalKeys (id, keys);} catch (IllegalArgumentException iae) {
...
} }
Os métodos setFocusTraversalKeys e setDefaultFocusTraversalKeys
ainda lançam IllegalArgumentException por outras razões,
conforme descrito na documentação Java. Avalie a lógica em seu bloco catch
para ver se é necessário manipular também o ClassCastException ou um tipo de exceção de tempo de execução mais geral.
Para obter mais informações sobre essas classes, veja os recursos a seguir: