Geändertes Verhalten in Ausnahmen beim Festlegen von AWT-Fokustraversierungstasten

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: