Исключение

– редко встречающаяся ситуация, происходящая при определенном наборе обстоятельств[60]. Например, программа, которая загружает данные из файла, должна обработать случай, когда файл не найден. Ей может также понадобиться отреагировать на ситуацию, когда не удается найти папку, содержащую файл, вероятно, реагируя иначе, чем в первом случае. Возможно также, что файл существует, но не может быть прочитан или его удаляют во время чтения либо данные в нем имеют неверную кодировку. Хороший программист придумает еще множество возможных проблем в такой простой ситуации, как чтение данных из файла. Ну и на чем ему остановиться?

Многие вязнут в обработке слишком большого числа исключений. Но она действительно необходима, и многие ситуации требуют обработки нескольких различных вариантов. Но чем больше обрабатывается вариантов исключений, тем меньше польза для проекта от добавления еще одного. Некоторые программисты попадают в замкнутый круг, пытаясь написать «непрошибаемый» код и тратя на обработку исключений столько же усилий, сколько и на основную часть кода. В этот момент исключения становятся сходными с избыточным планированием и начинают отвлекать усилия от основной работы.

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

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

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

Это подводит нас к так называемой

<< | >>
Источник: Эндрю Стеллман, Дженнифер Грин. Постигая Agile. Ценности, принципы, методологии. 2015

Еще по теме Исключение:

  1. политикой «без исключения
  2. Исключения
  3. Исключения
  4. Исключения из системы налогообложения
  5. Возможные исключения из правил
  6. Статья 37. Исключение жалобы из списка
  7. II. Без исключений
  8. Исключения и аномалии
  9. Исключение ответственности
  10. Золотое Правило #2. Торгуйте по правилам, не по исключениям.
  11. Материал, исключенный из рассмотрения
  12. Прогнозы и исключения из правил
  13. Статья 34. Исключение ответственности
  14. Статья 42. Исключение ответственности
  15. Исключения возможны и необходимы
  16. Отмена Ордонанса 27, 1996 г. и исключения
  17. Принцип конкурентного исключения Гаузе
  18. Все организации, за исключением бюджетных
  19. Статья 11. Исключения из обязанности ответить на запрос
  20. Численность работников,определяемая по платежным ведомостям (за исключением сельскохозяйственных рабочих)