Я просто хочу подтвердить свое понимание исключений и того, как они влияют на их объекты.
Если я выбрасываю исключение, которое останавливает обработку метода, правильно? Так что нет смысла делать
if ( some_check() ) {
throw new Exception(...);
} else {
...
}
Я должен просто сделать это
if ( some_check() ) {
throw new Exception(...);
}
rest_of_code();
Также, если я сгенерирую исключение в __construct, это уничтожит объект, верно? Поэтому я должен сделать все свои исключения аргументов для проверки аргументов сразу - нет смысла строить объект, если он все равно взорвется в исключительной ситуации проверки ввода.