У меня есть интерфейс с именем iIncident
, который определяет один метод when()
.when()
должен вернуть объект DateTime
.Я пытаюсь решить, что делать, если $object->when()
не имеет DateTime
для возврата, как это может быть в случае сразу после создания объекта и до установки всех его свойств.
Мой выбор:
- вернуть false
- выбросить какой-нибудь
Exception
- вернуть некоторое значение по умолчанию
DateTime
как '9999-01-01'
Я склонен идти с Exception
, поскольку $object
действительно не может действовать как инцидент, пока не узнает, когда это произошло.Я не хочу возвращать значение по умолчанию DateTime
, потому что это усложняет сравнение, и это не так.И я действительно не хочу возвращать false, потому что тогда я должен проверять его каждый раз, когда вызываю метод, но если это предпочтительный метод, я думаю, что я это сделаю.
Лучшее исключениепуть?И есть ли предопределенный тип исключения, который я должен использовать (ни один из SPL не показался мне особенно подходящим, но это может просто указывать на мой недостаток опыта)?