Является ли хорошая идея исключать исключения из цепочечных методов?Обработка ошибок цепочки PHP
Например:
class Mailer(){
private $attachment;
public function addAttachment($attachment){
if($this->validateAttachment($attachment)){
$this->attachment = $attachment;
}
throw new \InvalidArgumentException('Invalid attachment');
}
public function send(){
[...]
}
private function validateAttachment($attachment){
if($attachment === 'test'){
return true;
}
return false;
}
}
$mailer = new Mailer();
$mailer->addAttachment('invalid')->send();
Конечно, это не удастся, и вызвать фатальную ошибку, если не использовать TRY/поймать.
В противном случае, если мы не выкинули ошибку, когда addAttachment
не удался, использование не заметит, если что-то пошло не так. И если send
может работать без вложений, мы не сможем вернуть ошибку на этот метод.
Итак, существует ли какая-либо хорошая практика регистрации/обработки ошибок при использовании цепных методов?