2009-05-12 4 views
0

나는 여러 다른 클래스에서 호출되는 원격 웹 서비스에 대한 웹 참조가 있습니다. 이 웹 서비스에서만 제공되는 모든 예외를 catch하고 싶습니다. 모든 상위 레벨 코드를 방해하거나 수정하지 않고 어떻게이를 수행 할 수 있습니까 (예 :베이스 확장, 자동 생성 클래스)?WebService에서 모든 예외를 catch하는 방법은 무엇입니까?

+0

[웹 서비스로 모든 처리되지 않은 예외를 자동으로 캡처] (http://stackoverflow.com/questions/829086/c-capture-all-unhandled-exceptions-automaticly-with-webservice) – codeulike

답변

-2

당신은 할 수 없으며, 왜 그러고 싶습니까? "모든 예외를 잡기"또는 "모든 예외를 처리"하는 것은 거의 항상 실수입니다. 무엇을 성취하려고합니까?


  1. 난 당신이 서버가 아닌 클라이언트에 로그 건의 할 것입니다.
  2. 상위 레이어에서 예외를 숨길 때 수행 할 작업은 무엇입니까? 그것이 일어난 적이없는 척?

자신의 SoapException을 감싸는 것이 좋습니다. 아마도. 이것은 SoapException이 웹 서비스에만 한정되어 있기 때문입니다. 이 경우, 예, 모든 호출을 try/catch로 랩핑해야합니다. 이를 수행하는 가장 좋은 방법은 Facade 클래스에있을 것이고, SoapException을 래핑하거나 자신의 것으로 변환하는 공통 코드를 가질 수도 있습니다.

아직 코드 생성을 제어 할 준비가되지 않은 경우 직접 작성해야합니다.

+0

John, I 기본적으로 데이터베이스와 응용 프로그램 사이에 ws 프록시를 만들었습니다. webservice에서 모든 예외를 캡슐화하기 위해 사용자 정의 soapexception 클래스를 만들었습니다. 나는 그것을 기록하고 상위 레벨 비즈니스 로직에서 그것을 숨기고 싶다. – balint

+0

1) 클라이언트에 로그온해야합니다. 2) "압축을 풀고"캡슐화 된 예외가 아닌 핵심 예외 만 전달하려고합니다. – balint

관련 문제