由于E_WARNING,我是否需要在PHP中尝试/捕获opendir?

Joh*_*0te 7 php

我正在为家庭作业制作一个小文件浏览器 - 我的工作和我需要的一样好,但我现在有点困惑处理PHP中的错误情况,因为我正在尝试重构我的编码.

我习惯了C++/C#try/catch错误处理,PHP似乎有一些变种.令我困惑的是这个:

resource opendir(string $ path [,resource $ context])

成功时返回目录句柄资源,失败时返回FALSE.

如果path不是有效目录或由于权限限制或文件系统错误而无法打开目录,则opendir()将返回FALSE并生成级别为E_WARNING的PHP错误.您可以通过在函数名称的前面加上"@"来抑制opendir()的错误输出.

来自http://php.net/manual/en/function.opendir.php.

我是否需要捕获那里提到的级别E_WARNING生成的PHP错误,还是愚蠢的?我不明白为什么它会返回false并抛出一个错误 - 不应该抛出错误使它无论如何都不能正常返回?

Rus*_*sak 9

你会catch用来处理一个凸起的Exception.PHP错误是不同的.PHP错误具有不同的级别或严重性.您可以使用修改输出哪些错误error_reporting().为了抑制语句中的单个PHP错误,请使用@,如:@opendir(..)