2011-03-24 6 views
1

DAL (데이터 액세스 계층)에서 오는 모든 메서드에서 특정 유형의 예외를 catch하고 새로운 예외로 다시 throw하려는 경우 특정 유형.DAL의 모든 예외를 다른 예외로 catch

내 DAL에는 여러 가지 메소드가 있으므로 try/catch로 각 메소드를 래핑하기 시작하고 싶지는 않습니다.

예외 처리 응용 프로그램 블록을 사용하여 가능하다고 생각하지만이 작업을 수행하는 방법에 대한 좋은 설명서를 찾을 수 없습니다.
이전 버전의 응용 프로그램 블록에 익숙하지 않습니다.

+1

가능한 모든 예외를 * catch하고 싶지는 않습니다. 메모리 부족, A/V 및 물건에 대한 것과 같이 uncatchable (및 4.0에서는 실제로 uncatchable, yupee!) 예외를 래핑하고 싶지는 않습니다. 또한 버그를 알려주는 예외를 감싸고 싶지 않고 null을 참조 해제하고 0과 나쁜 인수로 나누는 것과 같이 프로덕션에서 절대로 throw해서는 안됩니다. –

+1

그냥 해보지 않으면 해결할 수없는 것보다 더 많은 문제가 발생합니다. – jeroenh

+0

좋아, 특정 유형의 예외를 잡으려고 내 질문을 편집했습니다. 이것은 다양한 예외를 잡는 데 유용 할 수 있으며 DalException으로 감싸고 있습니다. ... – gillyb

답변

1

DAL 리포지토리에 인터페이스가 있습니까? 저는 데코레이터 패턴을 사용하여 인터페이스를 구현할 것입니다. 모든 데코레이터가 예외를 catch 한 다음 새로운 예외를 빌드하여 상위 계층에 throw합니다.

참고로 n 계층 응용 프로그램에서 예외를 그냥 자연스럽게 던져 버리고 한 번 한 장소와 로그. 우리는 절대적으로 그렇게해야만하는 특정 예외를 만들 수 있습니다.

이유는 코드의 유지 관리 가능성 때문입니다. try/catch가 어디에나 존재하면 코드를 쉽게 읽을 수 없게됩니다.

+0

+1에 대해서는 언급해서는 안됩니다. 여전히 그것을 구현하는 방법을 제공하기 위해 -1 ;-) – jeroenh

관련 문제