PHP try catch 块没有捕获

PHP try catch block does not catch

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

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

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

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

Warning: fopen(uploads/Testdatensatz_Bewerbungenn.csv): failed to open stream: No such file or directory in [...]\bewerbungToDB.php on line 11

这也不例外。这是一个 PHP 警告。 Try/catch 仅用于捕获异常。如果你想 "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");
}