① 클래스가 부모 자식 관계
try {
...
// } catch (ParentException | ChildException e) { //에러!!! }
} catch (ParentException e) { // OK. 위의 라인과 의미상 동일
e.printStackTrace();
}
② e로 호출시 하나의 클래스에서만 선언된 메서드 호출불가. 공통 사항만 가능
정말 쓰고 싶을 땐 형변환 해줘야한다.
try {
...
} catch (ExceptionA | ExceptionB e) {
e.methodA(); // 에러. ExceptionA에 선언된 methodA()는 호출불가
if(e instanceof ExceptionA) {
ExceptionA e1 = (ExceptionA) e;
e1.methodA(); // OK. ExceptionA에 선언된 메서드 호출 가능
} else { // if(e instanceof ExceptionB)
...
}