代码之家  ›  专栏  ›  技术社区  ›  Lovelock

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

  •  0
  • Lovelock  · 技术社区  · 4 年前

    我有一个工作,用一个方法调用一个类,这个方法可以做一些事情。

    我已经用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()来破坏连接关系,则不会使作业失败。

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

    0 回复  |  直到 4 年前