Какой рейтинг вас больше интересует?
|
Обработка и логирование исключений под Windows и в веб сервисах (часть 3)2013-07-17 02:30:00 (читать в оригинале)Продолжаю цикл переводов понравившейся мне статьи автора James Dingle про исключения. Первый пост посвященный этой статье находится здесь. 1. Выбрасывайте исключение когда вы не знаете, что делать дальше Думайте о вашем коде как о компании. Индивидуальные функции и методы это индивидуальные сотрудники, классы это менеджеры. Библиотеки это главные офицеры, и точка входа в Main() это ваш CEO. Во всех компаниях, сотрудники иногда встречаются с ситуациями к которым они не готовы. Или которые слишком велики для них, чтобы они взяли ответственность за любой решение. Ваш доставщик пицы не может починить свой мотоцикл, если тот не хочет заводиться. Что он сделает в таком случае ? Он позвонит своему менеджеру Сделайте тоже самое со своим кодом. Когда вы столкнулись с ошибкой. Но при этом вы не можете решить что делать. Потому что решение зависит от вещей за пределами контекста метода или функции, которые выбрасывают исключение. Не стыдитесь этого. Ваш метод должен сделать то, что он должен сделть или провалиться. Нет никакой проблемы в том чтобы провалиться в случае, если нет способа решить проблему соответствующим образом. Пример: вы написали функцию GetImageSize(string fileName), которая рассчитывает размер файла с изображением по имени файла находящегося на диске. При этом, возможно, вы используете эту функцию во множестве ситуаций в вашем приложении. Если эта функция накроется или заглючит (потому что например указанный файл не картинка), то не пытайтесь ничего предпринять. Вы пропустили контекст (находитесь вне его). Внутри этой функции вы не имеете ключевой информации кто попросил сделать это и для чего. Так что вызвать NotAnImageException или BadFormatException это все что вы можете сделать.
if( header.FileFormat != ”JPEG” ) throw new NotAnImageException();
Отслеживание не всегда необходимо. Нет ничего плохого, чтобы логировать ситуацию здесь, но как вы увидите позже это не сильно вам поможет. Продолжение следует ...
|
Категория «SEO»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.