В Java 8 изменилась логика исключительных ситуаций времени выполнения в методах
java.awt.Component.setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) и java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes), когда параметр keystrokes содержит объекты не типа AWTKeyStroke.
В Java 8 методы выбрасывают ClassCastException, а не IllegalArgumentException для этой ошибки.
Это правило помечает вызовы методов setFocusTraversalKeys и
setDefaultFocusTraversalKeys, когда вызов находится в блоке
try с блоком catch для IllegalArgumentException.
В следующем примере показан метод setFocusTraversalKeys, который помечается.
public static void testSetFocusTraversal(comp comp, int id, Set keys) {
try {
comp.setFocusTraversalKeys (id, keys); } catch (IllegalArgumentException iae) {
...
}
}
В других случаях методы setFocusTraversalKeys и setDefaultFocusTraversalKeys
по-прежнему выбрасывают IllegalArgumentException (см. документацию Java). Проверьте
логику блока catch и определите, требуется ли обработка ClassCastException
или более общего типа исключительной ситуации времени выполнения.
Дополнительную информацию об этих классах можно найти в следующих ресурсах: