2010-03-16 3 views
1

Biztalk 2006 R2 프로젝트 (ESB Guidance 1에서 사용) orchstration에서 C# 코드의 정적 메서드로 호출하는 중입니다.이 메서드는 클래스를 사용하여 xlang 메시지에 파일 데이터를로드합니다. body at part 0 내부 클래스가 존재하지 않는 filepath를 전달할 때 예외를 catch하지만 throw하지 않습니다 (정적 메서드에는 catch 블록이 있고 orchstration에는 예외 처리가 있습니다)biztalk의 예외 처리 2006 R2

정적 메소드는 :


public static XLANGMessage LoadFileIntoMessage(XLANGMessage message, string filePath,Encoding encoding) 
     { 
      try 
      { 
       IStreamFactory sf = new FileStreamFactory(filePath,encoding); 

       message[0].LoadFrom(sf); 
       return message; 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
     } 

파일 스트림이로드 클래스 :


private class FileStreamFactory : IStreamFactory 
     { 
      string _fname; 
      Encoding _encoding; 

      public FileStreamFactory(string fname,Encoding encoding) 
      { 
       _fname = fname; 
       _encoding = encoding; 
      } 

      public Stream CreateStream() 
      { 
       try 
       { 
        StreamReader sr; 
        sr = new StreamReader 
        (
         _fname, 
         _encoding 
        ); 

        return sr.BaseStream; 
       } 
       catch (Exception ex) 
       { 
        throw ex; 
       } 
      } 
     } 

나는 오케스트레이션에서 정적 메서드를 호출하고 클래스 및 메서드가 가져온 후에 내 오케스트레이션에서 예외를 catch 할 것으로 예상합니다.

답변

1

실제 질문이 무엇인지 잘 모르겠습니다 ... 오케스트레이션에서 예외를 잡는 방법에 대해 이야기하고 있습니까? ESB Exception Handling 시스템에 들어가려면 어떻게해야합니까?

오케스트레이션에서 예외를 처리하려면 예외를 throw 할 수있는 코드/모양을 넣은 Scope 셰이프를 사용한 다음 예외 처리기를 추가해야합니다 (try/catch 블록과 비슷 함) . ESB에 물건 들어

은 여기를 참조 : http://msdn.microsoft.com/en-US/library/ee250235(v=BTS.10).aspx

마지막으로, 내가 말할 수 있습니다 : 당신은 이미 당신의 코드에서하고있는 것처럼 예외를 처리하지 마십시오. 다시 던지려면 예외를 잡지 말아야합니다. 그것은 매우 형편없는 프로그래밍 습관이고, 성능을 해칠뿐만 아니라 예외의 원래 스택 추적을 잃어 버리게되어 문제를 진단하고 해결하기가 더 어려워집니다. http://winterdom.com/2002/09/rethrowingexceptionsinc

+0

답장을 보내 주셔서 감사합니다. 디버그에서 볼 수 있도록 예외를 잡아서 왜이 코드를 볼 수 있습니까? 문제는 클래스 (두 번째 코드 링크)에서 예외가 발생하고 orch가 catch (메서드가 catch해야 함) 후에 발생하지만 해당 메서드에서 오류가 발생하면 orch가 catch하고 처리합니다. 나는 orchstration에서 ascope를 사용하고 책 (이 시스템은 지금까지이 오류를 제외하고 생산 alredady와 완벽하게 작동하고 있음)에 의해 excption 처리를 구축합니다. Thanks –