2009-03-18 6 views
1

이제 엔터프라이즈 라이브러리 예외 처리 블록을 사용하기 시작했습니다.EntLib 4.0 : 예외 처리 응용 프로그램 블록

조금 성가신 것처럼 보입니다.

는 정말 사방이 예외를 처리 할

try 
{ 
    //Do something with a DirectoryInfo object 
} 
catch(DirectoryNotFoundException ex) 
{ 
    bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); 

    if(rethrow) 
     throw; 
} 

을해야합니까?

또는 난 그냥 내가 속성 측면이가 할 수 인상했다

try 
{ 
    //Entrypoint code 
} 
catch(Exception ex) 
{ 
    bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); 

    if(rethrow) 
     throw; 
} 

에서 최고 수준을 포장해야합니까?

답변

2

예외 처리에는 몇 개의 장소가 필요합니까?

이 응용 프로그램 블록은 주로 레이어 경계에서 예외를 처리하는 데 사용됩니다. 예를 들어, 데이터 액세스 계층의 최상위 코드가 이것을 사용하여 DAL 예외를 기록할지 여부와 기록 방법, DAL 이외의 예외를 래핑할지 여부 등을 구성 할 수 있습니다. 그러나 사적인 내부 메서드는 예외를 처리해서는 안됩니다. 모든.

아니요, EAL은 속성을 수행하지 않습니다.

+0

좋아,이 문제를 해결하기 위해 함께 일하는 다양한 서비스가 있습니다. 실제로 로깅은 내 내부 예외에 더 관련이 있습니다. 예외 및 많은 유형의 예외를 throw하는 경향이있는 파일 및 폴더를 다루고 있습니다. 감사 ... 도움이되었습니다. –

+0

왜 안쪽에 더 중요한지. 나는 그 반대를 의미했다. 서비스 및 계층 경계에서 EAB를 조정하십시오. IOException을 랩핑 (wrapping)하는 것과 같이 논리가 무언가 다른 것을하지 않으면 낮은 레벨에서 예외를 잡아 내지 마십시오. 그래서 파일 이름이나 다른 문맥을 추가 할 수 있습니다. –

관련 문제