так? Я так понимаю многие так и делают, что сужают область применения инвариантами. Навскидку вот пример из doctrine https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php#L772
инвариант это не выброс исключения а причина для выброса исключений (или не исключений), типа нарушение каких-то правил, невалидный стэйт
это не инвариант и никакого отношения к этому не имеет
Обсуждают сегодня