Java 8 incorpora un cambio de comportamiento para las excepciones de tiempo de
ejecución que son emitidas por los métodos
java.awt.Component.setFocusTraversalKeys(intid,Set<? extends
AWTKeyStroke> keystrokes) y
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes) cuando el argumento
keystrokes contiene objetos cuyo tipo no es
AWTKeyStroke.
En Java 8, los métodos emiten una excepción ClassCastException en
lugar de IllegalArgumentException para este error.
Esta regla señala las llamadas a los métodos
setFocusTraversalKeys y setDefaultFocusTraversalKeys
cuando la llamada al método está rodeada por una sentencia try
con una cláusula catch para
IllegalArgumentException.
El ejemplo siguiente muestra un método setFocusTraversalKeys que
es detectado por la regla.
public static void testSetFocusTraversal(Component comp, int id, Set keys) {
try { comp.setFocusTraversalKeys (id, keys);} catch (IllegalArgumentExcepción iae) {
...
} }
Los métodos setFocusTraversalKeys y
setDefaultFocusTraversalKeys todavía emiten una excepción
IllegalArgumentException por otras razones, tal como se describe
en la documentación de Java. Analice el código del bloque catch para ver si necesita también
tratar las excepciones ClassCastException o un tipo más general de
excepción de tiempo de ejecución.
Para obtener más información sobre estas clases, consulte los recursos siguientes: