Změna chování ve výjimkách při nastavení kláves pro přechod fokusu AWT

Verze Java 8 zavádí změny chování pro výjimky za běhu, které jsou vyvolány metodami java.awt.Component.setFocusTraversalKeys(int id, Set <? extends AWTKeyStroke> keystrokes) a java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes), když argument keystrokes obsahuje objekty, které nejsou typu AWTKeyStroke. V prostředí Java 8 generují metody pro tuto chybu místo IllegalArgumentException výjimku ClassCastException.

Toto pravidlo značí volání metod setFocusTraversalKeys a setDefaultFocusTraversalKeys, když je volání metody obklopeno příkazem try s klauzulí catch pro IllegalArgumentException.

Následující příklad ukazuje metodu setFocusTraversalKeys, která je označena.

veřejný statický void testSetFocusTraversal(Component comp, int id, Set keys) {

        zkusit { comp.setFocusTraversalKeys (id, klíče);} catch (IllegalArgumentVýjimka iae) {
            ...
        } }

Metody setFocusTraversalKeys a setDefaultFocusTraversalKeys stále generují IllegalArgumentException z jiných důvodů, jak je popsáno v dokumentaci Java. Vyhodnoťte logiku v bloku catch, abyste zjistili, zda potřebujete zpracovat také ClassCastException nebo obecnější typ výjimky za běhu.

Další informace o těchto třídách viz následující prostředky: