2014-04-12 1 views
0
  1. 단일 catch 문에서 모든 WCF 문을 catch 할 수 있습니까? - 즉 아래 코드에서 WCF에 대한 catch는 2 개이지만 코드 응답은 모두 동일하므로 코드를 복제하고 싶지 않습니다.
  2. WCF가 모두 잡히고 WCF 오류가 발생하거나 누락 되었습니까?

주 나는 WCF 클라이언트에서이 목록 here단일 catch 문에서 모든 WCF 예외를 catch하십시오.

try 
     { 
     // Some code...... 
     } 
     catch (CommunicationException exception) // WCF Exception 
      { 

      } 

     catch (TimeoutException exception) // WCF Exception - 
      { 

      } 

     catch (Exception ex) 
      { 
       // Standard exception 
      } 
+3

가능 중복 (http://stackoverflow.com/questions/136035/catch-multiple-exceptions-at-once) –

+0

감사 : 여기서

는 예제 - 항목 1에는 응답하지만 항목 2에는 응답하지 않습니다. – user1438082

+0

WCF 클라이언트 또는 서버에 해당합니까? 귀하의 접근 방식은 대답에 따라 다를 것입니다. 이 MSDN 기사를 검토해보십시오 : http://bit.ly/1lXorLn 두 경우 모두 도움이 될 것입니다. – PeterB

답변

1

을 보았다, 당신은 오류 예외를 잡기 서비스에서 발생한 예외를 캡처 할 수 있습니다. 특수 처리 (예 : TimeoutException 또는 CommunicationException)를 원할 경우 다른 클래스의 오류를 포착 할 수도 있습니다. [? 한번에 캐치 여러 예외]

proxy ServiceClient(); 
try 
{ 
    proxy = new ServiceClient(); 
    proxy.DoSomething(); 
} 
catch (FaultException ex) 
{ 
    // handle errors returned by WCF service 
} 
catch (CommunicationException ex) 
{ 
    // handle communication errors here 
} 
catch (TimeOutException ex) 
{ 
    // handle timeouts here 
} 
catch (Exception ex) 
{ 
    // handle unaccounted for exception here 
} 
finally 
{ 
    if (proxy.State == CommunicationState.Opened) 
    { 
     proxy.Close(); 
    } 
    else 
    { 
     proxy.Abort(); 
    }  
} 
+0

를위한 것인가? 그 2 캐치가 모든 WCF 오류를 잡을 것인가? – user1438082

+1

다른 예외를 표시하도록 업데이트했습니다. CommunicationException 및 TimeoutException은 WCF 와이어 수준 오류를 처리합니다. – PeterB

+0

고마움, 현학적 인 것에 대해 미안하지만 모든 WCF 오류입니까? – user1438082

관련 문제