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

时间:2017-09-11 17:45:16

标签: php laravel error-handling filesystems laravel-5.1

美好的一天,

我修改了这个文件。

function validateAllLinks(webservicelinks, cb) {
    async.eachOfSeries(webservicelinks, validateLink, function (err) {

        if(err) {
            cb("Validation failed")
        } else {
            cb(null, "Success")
        }

    })

}

function validateLink(linkData, cb) {
    var proxiedRequest = request.defaults({'proxy': linkData.linkUrl});
        proxiedRequest(linkData.linkUrl , function (error, response, body) {
            // some validation
            if(validated) {
                linkData.linkStatus = true
            }
        })
}

// usage:

validateAllLinks([{linkUrl: 'http://google.com', linkStatus: false}], console.log)

这是我修改的功能。

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

我发了电子邮件给我。电子邮件包含$ message和$ file以及$ line。

这就是电子邮件所说的内容。

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

消息为空,但它在文件中遇到错误。我打开文件。

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

我很困惑。为什么catch块没有捕获错误?哪种类型的错误不会给laravel的错误处理程序发送消息?我能做些什么来获得有关错误的更多信息吗?

这是我们的Laravel版本。

Laravel Framework版本5.1.45(LTS)

1 个答案:

答案 0 :(得分:1)

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

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

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

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