2012-02-22 9 views
0

Есть ли проблемы с следующим кодом библиотеки?Обработка исключений в библиотеках

try 
{ 
    // 
} 
catch (Exception ex) 
{ 
    CustomLogger.Log(ex.ToString()); //Write to log file 
    throw; 
} 

Я прочитал где-то, что обработка исключений лучше всего оставить заявки

+0

Два запроса к библиотечным работникам: 1. Не бросайте исключение базового класса. 2. Исключить документы (по крайней мере, более общие), брошенные методами. – TrueWill

ответ

5

рамочных действительно не должен иметь свою собственную регистрацию. Он должен позволить Приложению предоставлять поставщика регистрации.

Если приложение предоставило поставщика регистрации в таком случае, то фактический код будет прав (регистрация Исключения, а затем повторное бросание). В противном случае просто отпустите Exception для приложения, чтобы он регистрировался, как он считает нужным.

+0

Не слышал о провайдере регистрации. Где узнать больше об этом? – blitzkriegz

+0

@blitzkriegz - Это не обязательно, чтобы получить дополнительную информацию. Это может быть так же сложно, как реализовать блок регистрации журналов Enterprise Library, так как простой интерфейс ILoggingProvider в вашей библиотеке требует, чтобы вызывающий пользователь реализовал и предоставил через параметр конструктора. –

0

Если вы настаиваете на том, что вы можете зарегистрировать ошибку API и состояние программы. Таким образом, вам легче отлаживать ваш API, просматривая журналы. Кроме того, вы должны перестроить исключение, чтобы вызывающий абонент узнал об ошибке и попытался обработать ее значимым образом. Если вы просто заходите в журнал и не бросаете, вызывающий пользователь будет запутан или, возможно, потребуется просмотреть файл журнала для изменений и вывести исключения из него.

Моя точка зрения, бросьте ее, даже если вы ее запишите.

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