Laravel 文件系统取消链接中的模糊错误消息

Vague Error Message in Laravel FileSystem Unlink

美好的一天,

我修改了这个文件。

vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php

这是我修改的函数

public function handleError($level, $message, $file = '', $line = 0, $context = [])

我让它给我发了一封电子邮件。电子邮件包含 $message、$file 和 $line。

这就是邮件中所说的。

MESSAGE FILE vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php LINE 126

该消息是空白的,但 运行 文件中出现错误。我打开文件。

public function delete($paths)
{
    $paths = is_array($paths) ? $paths : func_get_args();

    $success = true;

    foreach ($paths as $path) {
        try {
            if (! @unlink($path)) { # the error is here
                $success = false;
            }
        } catch (ErrorException $e) {
            $success = false;
        }
    }

    return $success;
}

我很困惑。为什么错误没有被 catch 块捕获?什么类型的错误不会向 laravel 的错误处理程序发送消息?我可以做些什么来获取有关该错误的更多信息吗?

这是我们的 Laravel 版本。

Laravel 框架版本 5.1.45 (LTS)

首先你问的问题是有误导性的。您要做的是在 laravel 中添加一个自定义错误处理程序,您可以通过遵循 this URL .

来实现

您遇到的错误可能是由于文件权限错误导致的。

并且由于在函数调用 unlink() 之前有 @ 符号,因此抑制了由它引起的任何错误。

删除 @ 符号,如果文件不存在或有错误,它会抛出它,然后 catch 块会捕获它。