gpt4 book ai didi

PHP 链接错误处理

转载 作者:行者123 更新时间:2023-12-03 07:54:09 26 4
gpt4 key购买 nike

在链式方法上抛出异常是个好主意吗?

例如:

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/catch,否则这将失败并导致 fatal error 。

否则,如果我们在 addAttachment 时没有抛出错误失败,如果出现任何问题,使用将不会注意到。
如果 send可以在没有附件的情况下工作,我们也不能在该方法上返回错误。

那么,在使用链式方法时,在错误记录/处理方面有什么好的做法吗?

最佳答案

您应该在要中断程序流程的任何地方抛出异常。它是否被链接并不重要。在您的情况下,如果添加附件失败,您希望在它到达 send() 之前将其停止。 .这是对异常的完美使用。

显然,您需要确保将整个执行包装在 try 中。/catch否则你会得到一个 fatal error (所有 PHP 停止的地方)。

关于PHP 链接错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31562724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com