2014-05-12 7 views
4

최근 완전히 독립적 인 두 가지 Java 코드 비트 (예 : Throwable)를 던지면서 더 구체적인 예외 클래스로 캐스팅했습니다. 예를 들어, 다음과 같은 몇 가지 톰캣 코드에서입니다 : 내가 뭔가를 누락하는 경우Java에서 예외를 throw 할 때 캐스트를 수행해야 할 이유가 있습니까?

Exception exception = ex.getException(); 
if (exception instanceof IOException) { 
    throw (IOException) exception; 
} 

IOException에 대한 캐스트는 나에게 완전히 무의미한 것 같다,하지만 야생에서 두 번 비슷한 보았던, 내가 궁금해?

+1

관련 읽기 (Java 7을 사용하는 경우) : http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html – ChristopheD

답변

4

캐스트는 컴파일러에게 어떤 종류의 예외인지 알려주므로 "확인"또는 "선택 취소"여부를 컴파일러에 알립니다.

+2

* 이마를 치거나 * 아하, 코스. 그 외에도,이 메소드는 'throws IOException'선언을 준수 할 수 있습니다. 감사. – Aron

관련 문제