美好的一天,
我修改了这个文件。
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 Framework版本5.1.45(LTS)
最佳答案
首先,您提出的问题具有误导性。您想要做的是在laravel中添加一个自定义错误处理程序,可以通过遵循this URL来实现。
您遇到的错误可能是由于文件权限错误引起的。
并且由于在函数调用unlink()之前有 @ 符号,因此可以抑制由它引起的任何错误。
删除 @ 符号,如果文件不存在或有错误,它将抛出该文件,然后catch块将其捕获。