如何捕获由 Laravel 5.6 队列的失败方法引发的特定异常?



我的handler()抛出了一个SalesforceException。我想观看它并从中记录特定的错误消息,使用 Laravel 5.6 中队列上的 failed() 方法。 如果我执行以下操作,则会出现错误:

错误

[2018-04-17 00:18:12] local.ERROR: Type error: Argument 1 passed to AppListenersSyncNewsletterSignupToSalesforce::failed() must be an instance of Exception, instance of AppEventsNewsletterSignup given {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Type error: Argument 1 passed to App\Listeners\SyncNewsletterSignupToSalesforce::failed() must be an instance of Exception, instance of App\Events\NewsletterSignup ...

法典

  public function failed(Exception $e)
    {
        try {
        } catch(SalesforceException $e)
        {
            $response = $e->getResponse();
            $responseBodyAsString = $response->getBody()->getContents();
            logger($responseBodyAsString);
        }
    }

在应用服务提供程序中设置侦听器以侦听队列中失败的作业:

public function boot() {
     Queue::failing(function (JobFailed $event) {
        // $event->connectionName
        // $event->job 
        // $event->exception
        // check for the specific exception type
        if ($event->exception instanceof SalesforceException) {
             // do something
        }
     }); 
} 

有关失败作业事件的更多信息。

相关内容

  • 没有找到相关文章

最新更新