PHP try catch未因Laravel代码错误而失败

PHP try catch未因Laravel代码错误而失败,php,try-catch,Php,Try Catch,我有一个任务,用一个方法调用一个类,这个方法可以做一些事情 我已将此方法调用包装在一个try-catch中,它将正确捕获无效的类名,但不会捕获断开的关系 在我的工作中: try { $this->LeadHandler->deliver(); $this->lead->setStatus('delivered'); } catch(\Exception $e){ return $this->lead->setStatus('delive

我有一个任务,用一个方法调用一个类,这个方法可以做一些事情

我已将此方法调用包装在一个try-catch中,它将正确捕获无效的类名,但不会捕获断开的关系

在我的工作中:

try {
    $this->LeadHandler->deliver();
    $this->lead->setStatus('delivered');
} catch(\Exception $e){
    return $this->lead->setStatus('delivery failure');
}
交付方法:

public function deliver()
{
    Mail::to(['email@email.com'])->send(new SendLead($this->lead));
    $this->lead->clients()->attach(1);
}
上面的代码正常工作,但是如果attach方法中有错误,它不会抛出错误,作业显示为已处理

如果我故意将邮件facade输入为Ail,它就会抛出错误,作业就会失败

但是,如果我通过调用client()而不是clients()来破坏关系,则不会使作业失败

我试图用一种方法将多个事物分组并尝试捕获的方式是否不正确