2010-11-18 4 views
4
Exception 나는 Exception을 잡으려고하고 cause이 다른 라이브러리에 정의 된 MyException 유형 인 경우 몇 가지 추가 작업을 수행하여 getCause()을 검사하려고합니다.

Throwable로부터 MyException에 캐스트 할 수 없다

의 의 의

내가이 이클립스 (컴파일러?) 무엇입니까 오류를 e.getCause() instanceof MyException 있는지 확인하려고 할 때 :

호환되지 않는 조건 피연산자 유형의 Throwable가와 MyException

(MyException) e.getCause() 캐스팅 시도 할 때, 내가 얻을 :

Throwable에서 MyException으로 캐스트 할 수 없습니다.

e.getCause().getClass().equals(MyException.class)를 컴파일 할 수 있으며 true을 반환합니다.

+3

무엇이 오류입니까? – aioobe

+1

MyException 클래스가 두 번 선언되었고 사용하려는 클래스를 사용하고 있지 않을 수 있습니다. – Guillaume

+0

나는 비슷한 질문을 만난다. 몇 분이 걸린다. 예외 e = null; if (e instanceof InvocationTargetException) '이 오류를보고하면이 질문에 대한 대답은 다음과 같습니다. 사용하는 클래스를 가져옵니다. – hiway

답변

3

해결 방법은 MyException 외부 라이브러리의 Exception에서 상속되지만 최상위 프로젝트에는 해당 외부 라이브러리가 포함되어 있지 않습니다. private classextend ed MyException이고 일관성이없는 유형 계층 구조 오류가 발생했을 때이를 발견했습니다.

+4

향후 질문이 있으시면 ** 실제 ** 코드와 ** 실제 ** 오류를 게시하십시오. – BalusC

+0

@ BalusC에 동의합니다. 사실, 원래의 질문을 수정하여 실제 오류를 포함 시켜서 검색 엔진이 색인을 생성 할 수 있도록하는 것이 현명 할 것입니다. 비슷한 상황에있는 다른 사람들도이 솔루션을 찾을 수 있습니다. –

+0

그게 내 희망 이었어. –

관련 문제