Php Laravel 5.5-作业-触发器失败()方法,带;GuzzleHttp\Exception“;

Php Laravel 5.5-作业-触发器失败()方法,带;GuzzleHttp\Exception“;,php,guzzle,laravel-5.5,Php,Guzzle,Laravel 5.5,我正在构建一个简单的Laravel作业,它使用GuzzleHttp\Client向远程web服务发送GET请求。 当GuzzleHttp请求返回错误时,它会抛出一个GuzzleHttp\Exception\ClientException的实例,但failed()方法必须是app\Jobs\Exception的实例。 代码如下: namespace app\V1\Jobs; class setRegionJob implements ShouldQueue { use Dispatchab

我正在构建一个简单的Laravel作业,它使用
GuzzleHttp\Client
向远程web服务发送GET请求。 当
GuzzleHttp
请求返回错误时,它会抛出一个
GuzzleHttp\Exception\ClientException
的实例,但
failed()
方法必须是
app\Jobs\Exception
的实例。 代码如下:

namespace app\V1\Jobs;
class setRegionJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    // . . .
    public function handle()
    {
        $client = new \GuzzleHttp\Client([
            'base_uri' => 'http://link_to_api/'),
            'timeout'  => 2.0,
        ]);
        $res = $client->request('GET', '?key=param1&key2=param2');
        if ($res->getStatusCode() == 200) {
            $data = json_decode($res->getBody(), true)['data'];
        } else {
            $data = null;
        }
    }

    public function failed(Exception $exception)
    {
         // do something
    }
}
然后,当
$client->request('GET','?key=param1&key2=param2')
抛出异常时,错误为:

[2017-11-09 14:38:40] local.ERROR: Type error: Argument 1 passed to app\Jobs\setRegionJob::failed() must be an instance of app\Jobs\Exception, instance of GuzzleHttp\Exception\ClientException given.

如何触发
failed()
方法?

Put
use Exception在名称空间声明后的顶部谢谢!!!它起作用了!Laravel指南很清楚:放置
使用异常在名称空间声明后的顶部谢谢!!!它起作用了!《拉威尔指南》很清楚: