Принципиальный молчун
Зарегистрирован: 22 December 2006
Сообщения: 6
Примеры кода: 0
|
Вынесение множества catch() в отдельный метод |
26 January 2007 14:43 |
|
|
|
|
Привет.
Есть много мест примерно с таким кодом:
try
{
// тут что-то делаем
}
catch (NullReferenceException ex)
{
// тут как-то реагируем
}
catch (ArgumentException ex)
{
// тут как-то реагируем
}
catch (Exception ex)
{
// тут как-то реагируем, а затем генерим исключение снова
throw ex;
}
Так вот, возникла идея вынести все catch в один метод, примерно так:
protected virtual void MyExceptionHandler(Exception ex)
{
// некритические исключения
if (ex is NullReferenceException)
{
// тут как-то реагируем
}
if (ex is ArgumentNullException)
{
// тут как-то реагируем
}
else if (ex is InvalidOperationException)
{
// тут как-то реагируем
}
// Критическое исключение
else if (ex is Exception)
{
// тут как-то реагируем, а затем генерим исключение снова
throw ex;
}
}
и пользоваться им так:
try
{
// тут что-то делаем
}
catch (Exception ex)
{
MyExceptionHandler(ex);
}
Стоит так делать? С одной стороны, вроде логично, а с другой... с другой я такого нигде ещё не встречал (правда, для NET пишу совсем недавно). ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Данное сообщение получено с сайта RSDN
|
|