Очень строгое правило: процедура должна вызывать исключение тогда и только тогда, когда она не может соответствовать задокументированным постусловиям.Однако существует некоторая гибкость в определении постусловий.Способ определения постусловий будет определять, должна ли подпрограмма генерировать исключение.
Если определенные проблемные условия являются предсказуемыми, может быть полезно иметь отдельные методы для:
- Определение взаранее, может ли что-то сработать
- Попытка что-то сделать и указание с помощью кода возврата, сработало ли это
- Сделайте что-то с ожиданием того, что это сработает, и выведите исключение, если оно не
Если единственноеВ случае сбоя вызывающая процедура может создать исключение, поэтому лучше иметь один фрагмент кода внутри подпрограммы для проверки условия и выбросить исключение, чем требовать дублирования такого кода вкаждый звонящий.С другой стороны, если вызывающая сторона будет готова справиться с ошибкой (например, с помощью какой-либо стратегии типа «попытка повтора» или «поиск в другом месте»), было бы лучше, чтобы подпрограмма возвращала код ошибки, а не создавала исключение.