2009-03-18 3 views
1

Я только начинаю использовать блок обработки исключений Enterprise Library.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

Хорошо, это хорошо, у меня есть различные службы, работающие вместе, чтобы решить проблему. Я думаю, что регистрация действительно более актуальна для моих внутренних исключений. Я имею дело с файлами и папками, которые склонны генерировать исключения и множество типов исключений ... Спасибо, это помогло. –

+0

Почему важнее для внутренних. Я имел в виду обратное. Cal EAB на службе и границы слоев. Не перехватывайте исключения на низких уровнях, если ваша логика не сделает что-то другое с ними, например, обматывание IOException, чтобы вы могли добавить имя файла или другой контекст. –

Смежные вопросы