При программировании по контракту функция или метод сначала проверяет, выполнены ли ее предварительные условия, прежде чем приступать к выполнению своих обязанностей, не так ли? Два наиболее важных способа выполнения этих проверок - assert
и exception
.
- assert не работает только в режиме отладки. Чтобы убедиться, что важно (единица) проверить все отдельные условия контракта, чтобы убедиться, что они действительно не работают.
- исключение не работает в режиме отладки и выпуска. Это имеет то преимущество, что проверенное поведение отладки идентично поведению релиза, но оно несет в себе ограничение производительности во время выполнения.
Какой, по вашему мнению, предпочтительнее?
См. выпущенный вопрос здесь