使用try catch无法在laravel中捕获错误

时间:2018-08-05 15:47:50

标签: laravel laravel-5.6

我写了一个代码来尝试捕捉错误。

我希望如果发生错误,则laravel继续执行下一个错误,然后将错误写入错误文件,如下所示。

Laravel的黑色错误页面弹出,其中显示“ ErrorException(E_WARNING),然后在左侧页面显示整个错误,程序突然停止。 有没有一种方法可以跳过错误通知,从而使我的整个代码停下来。

我尝试通过编码捕获错误:

    $jsondata_car = (file_get_contents($urltofind_car));

我错过了什么吗? 我得到的错误在这里

  

file_get_contents():无法打开流:   HTTP请求失败! HTTP / 1.1 400错误请求

错误显示在行

(->> "data.csv"
      io/resource
      io/reader
      line-seq
      (drop 1))

解决方案在这里

使用应包含名称空间的异常。

问题是,即使我没有写过

,也不会引发错误。
  

使用异常;

在一开始。

按照@simon R的建议,我进行了更正,并且奏效了。

2 个答案:

答案 0 :(得分:0)

您可以使用rescue helper代替try-catch块:

$jsondata_car = rescue(function () use ($urltofind_car) {
    return file_get_contents($urltofind_car);
}, null);

答案 1 :(得分:0)

很可能仍会引发错误,因为您尚未导入Exception类

确保您添加

Use Exception;

上你的课。

或者将代码更新为名称空间;

try {
    $jsondata_car = (file_get_contents($urltofind_car));
} catch (\Exception $e) {
    $errorfile = fopen("errors", 'a');
    fwrite($errorfile, $e - > getmessage().
        "\n");
    $failed_car = 9999999;
    report($e);
    return false;
}