In Java 8 wurde das Verhalten von Laufzeitausnahmen geändert, die von den Methoden
java.awt.Component.setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) und
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
ausgelöst werden, wenn das Argument keystrokes Objekte enthält, die nicht den Typ AWTKeyStroke haben.
In Java 8 lösen die Methoden eine Ausnahme des Typs ClassCastException anstelle einer Ausnahme des Typs IllegalArgumentException
für diesen Fehler aus.
Diese Regel markiert Aufrufe der Methoden setFocusTraversalKeys und
setDefaultFocusTraversalKeys, wenn diese in eine try-Anweisung
mit einer catch-Klausel für IllegalArgumentException eingeschlossen sind.
Das folgende Beispiel zeigt eine markierte setFocusTraversalKeys-Methode.
public static void testSetFocusTraversal(Komponentenkomponente, int-ID, Schlüssel festlegen) {
try { comp.setFocusTraversalKeys (ID, Schlüssel);} catch (IllegalArgumentException iae) {
...
} }
Die Methoden setFocusTraversalKeys und setDefaultFocusTraversalKeys
lösen für andere Ursachen, die in der Java-Dokumentation beschrieben sind, weiterhin die Ausnahme
IllegalArgumentException aus. Werten Sie die Logik in Ihrem catch-Block
aus, um festzustellen, ob Sie auch eine Ausnahme des Typs ClassCastException oder einen allgemeineren
Typ von Laufzeitausnahme behandeln müssen.
Weitere Informationen zu diesen Klassen finden Sie in den folgenden Ressourcen: