Java 8 inclut un changement de comportement pour les exceptions d'exécution émises par les méthodes
java.awt.Component.setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) et
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) lorsque
l'argument keystrokes contient des objets qui ne sont pas de type AWTKeyStroke.
Dans Java 8, les méthodes émettent une exception ClassCastException et non IllegalArgumentException pour
cette erreur.
Cette règle marque les appels de méthode setFocusTraversalKeys et
setDefaultFocusTraversalKeys entourés d'une instruction try avec
une clause catch pour l'exception IllegalArgumentException.
L'exemple suivant présente une méthode setFocusTraversalKeys qui est marquée.
public static void testSetFocusTraversal(Component comp, int id, Set keys) {
try { comp.setFocusTraversalKeys (id, keys); } catch (IllegalArgumentException iae) {
...
} }
Les méthodes setFocusTraversalKeys et setDefaultFocusTraversalKeys émettent
toujours l'exception IllegalArgumentException pour les autres raisons (voir documentation
Java). Evaluez la logique dans votre bloc catch afin de voir s'il est
nécessaire de gérer également l'exception ClassCastException ou un type d'exception d'exécution plus
général.
Pour plus d'informations sur ces classes, voir les ressources suivantes :