Try / catch在我的Laravel函数中不起作用

时间:2017-09-10 20:22:22

标签: php laravel api

我正在尝试处理错误,因为如果$ apimodel变量为null或其他错误,我想重定向用户。与api的身份验证错误一样多。这是我的代码:

$integration = Integration::where('name', 'lightspeed')->first();

    $apimodel = Apimodel::where('user_id', Auth::user()->id)
        ->where('integration_id', $integration->id)
        ->where('active', true)
        ->first();

    try {
        $api = new WebshopappApiClient(
            $apimodel->data01,
            $apimodel->api_key,
            $apimodel->api_secret,
            $apimodel->data02);
    } catch (ErrorException $e) {
        die($e->getMessage());
    }

    return view('integrations.lightspeed.index', compact('api'));

2 个答案:

答案 0 :(得分:0)

您不应该(也不能)捕获Whoops异常,因为当发生原始异常时,它们会在请求生命周期中自动抛出

\Whoops\Exception\ErrorException扩展了PHP的\ErrorException,这是WebshopappApiClient抛出的那个,也是你应该捕获的那个。甚至可能是最宽的\Exception,具体取决于您的使用案例。

答案 1 :(得分:0)

您似乎没有使用正确的命名空间来捕获您想要捕获的异常。正如您所希望的那样die()我建议您只需抓住\Exception而不是

 } catch (\Exception $e) {
   ...