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에서, 이 메소드에서는 이 오류에 대해 IllegalArgumentException
대신 ClassCastException이 발생합니다.
이 규칙은 IllegalArgumentException에 대해 catch 절로
try 문에서 메소드 호출을 둘러싸는 경우
setFocusTraversalKeys 및 setDefaultFocusTraversalKeys 메소드에 대한 호출에 플래그를 지정합니다.
다음 예제에서는 플래그가 지정된 setFocusTraversalKeys 메소드를
표시합니다.
public static void testSetFocusTraversal(Component comp, int id, Set keys) {
try { comp.setFocusTraversalKeys (id, keys);} catch (IllegalArgumentException iae) {
...
} }
setFocusTraversalKeys 및 setDefaultFocusTraversalKeys 메소드는
Java 문서에 설명된 대로 기타 이유로 IllegalArgumentException이
계속 발생합니다. catch
블록의 로직을 평가하여 ClassCastException 또는 추가
일반 런타임 예외 유형도 처리해야 하는지 확인하십시오.
이러한 클래스에 대한 자세한 정보는 다음을 참조하십시오.