Сегодня 5 мая, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
coding4.net
coding4.net
Голосов: 1
Адрес блога: http://www.coding4.net/
Добавлен: 2012-06-11 20:16:46
 

Обработка и логирование исключений под 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();


Отслеживание не всегда необходимо. Нет ничего плохого, чтобы логировать ситуацию здесь, но как вы увидите позже это не сильно вам поможет.



Продолжение следует ...

Тэги: (решение), исключение, сделать

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.