2012-10-12 5 views
0

가능한 중복 : 예외의 여러 유형 잡을 수 있습니다 자바 SE 7에서
In a Java 7 multicatch block what is the type of the caught exception?다른 유형의 세로 막대 사용?

:

catch (IOException|SQLException ex) { 
    logger.log(ex); 
    throw ex; 
} 

는 구문의 다른 사용이 있습니까?

나는

public void main() { 
    Integer|Boolean a; 
    a=true; 
    a=Integer.Zero; 
} 

처럼,이 구문을 사용하여 노동 조합을 만들 수 또는 내가

public void main() { 

    Object o = new List<Integer>|Comparable<List<Integer>>() { 
     // here implementing both interfaces... 
    } 

} 
+2

아니요, 여러 예외를 한 번에 잡는 것 외에 다른 작업을 수행 할 수 없습니다. –

+0

@JB 왜? 그들은 얼마나 오래 그것에 올 것인가? :) –

+1

첫 번째 것은 Java를 느슨한 유형의 언어로 변환하기 때문에 (그리고 결코 발생하지 않을 것입니다.) 두 번째 것은 프로젝트 코인으로 간주되거나 제출되지 않았습니다. 그런 일이 일어나길 원한다면 RFE를 제출하십시오. 그러나 IMHO를 사용하면 언어가 크게 부 풀리지 않고 부 풀릴 수 있습니다. –

답변

0

처럼 익명으로 여러 인터페이스를 유도하기 위해 이것을 사용할 수있을 수 있습니다 유형은 IOException이 최소한의 상한이다 및 SQLException, Exception을 제외하고 예외를 재현하는 경우 특별 규칙이 적용됩니다. 확인 된 예외 목록은 Exception이 아닌 IOException 및 SQLException입니다. 보다 정확한 내용은 Java 언어 사양의

항을 참조 14.20-http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20

삼항 연산자의 유형을 선택 제외하고 다른 자바에서 아무것도 비슷한 정말 없습니다.

관련 문제