【问题标题】:PHP try catch block does not catchPHP try catch 块不捕获
【发布时间】:2015-03-31 03:16:18
【问题描述】:

我想在 PHP 中打开一个文件,我要做的第一件事是检查它是否存在。因此,我将其添加到 try catch 块中,因此脚本不会崩溃。如果文件不存在,脚本应该停止。 下面的代码给出了错误消息the file could not be opened

(该文件不存在,测试原因)

    try
    {
        $file_handle = fopen("uploads/".$filename."","r");
    }
    catch (Exception $hi)
    {
        die("Fehler");
    }

这是我的浏览器中显示的错误:

警告:fopen(uploads/Testdatensatz_Bewerbungenn.csv):打开失败 流:在线 [...]\bewerbungToDB.php 中没有这样的文件或目录 11

【问题讨论】:

标签: php file exception try-catch


【解决方案1】:

这也不例外。这是一个 PHP 警告。 Try/catch 仅用于捕获异常。如果你想“捕捉”那个错误,你应该检查 $file_handle 的值,如果它是 false,则抛出异常。

try
{
    $file_handle = @fopen("uploads/".$filename."","r");
    if (!$file_handle) {
         throw new Exception('Failed to open uploaded file');
    }
}
catch (Exception $hi)
{
    die("Fehler");
}

【讨论】:

  • echo "Error " . $hi->getMessage(); ;-) 得到真正的原因
猜你喜欢
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多