2012-11-23 2 views
4
내 코드에서 방법의

하나는 UnknownHostException 예외UnknownHostException의이 catch 블록에 인식되지 않는

은 내가 처음이 같은 catch 블록을했다 던졌습니다 사실로 평가하고 따라서 일부 호스트 오류가 있다는 것을 출력 할 수 없습니다. 내가 UnknownHostException을 처리하기 위해 별도의 catch 블록을 쓴 후

Custom Message ; nested exception is: 
    java.net.UnknownHostException: abc.xyz 

을하지만 여전히 그렇지 사로 잡았지고 :

내가 그냥이를 인쇄하는 그 전에 sysout을 볼 수 있습니다.

답변

9

음, 분명히 당신의 UnknownHostException이 다른 예외로 싸여 있습니다. 즉 일부 위의 코드는 UnknownHostException을 잡아 던져 :

throw new SomeOtherException("Custom Message", unknownHostEx); 

인쇄 e.getClass() 예외의 종류를 포장되는 것을 볼 수 있습니다. 다음을 시도해 볼 수도 있습니다.

if(e.getCause() != null && e.getCause() instanceof UnknownHostException) 

그러나 추한 것입니다. BTW

당신은 instanceof을 사용하지 않도록하고, 예외 자체 밖으로 catch 그림을 보자 (하지만 귀하의 경우에는 도움이되지 않습니다)해야합니다

catch (java.net.UnknownHostException e) { 
     System.out.println("Unknown Host Ex"); 
} 
catch (Exception e) { 
     System.out.println("OTHER ERROR"); 
} 
+0

예 제가 수업을 확인하고 뭔가가'UnknownHostException' 이외의 것이 었습니다, 많이 고마워요 – Abubakkar

2

UnknownHostException 다른 Exception 안에 중첩되는 것은 그래서 인스턴스하지 않을 수 있습니다 그것의 다만 그것을 포함한다. 당신은 결국 확인할 수 있습니다 e.getCause()

+0

당신의 대답을 많이 고마워요 – Abubakkar

관련 문제