PHP致命错误:在第X行的<file>中找不到类'InvalidArgumentException'</file>

时间:2014-03-26 14:51:18

标签: php logging apache2

我在php.log

中看到了这一行
PHP Fatal error:  Class 'MyNamespace\InvalidArgumentException' not found in <file> on line X

第X行包含:

throw new InvalidArgumentException("Error");

它发生在页面重新加载上。首先,我将一些值放入表单中,单击“提交”并加载我的页面。我单击刷新页面(使用我的浏览器功能)重新加载页面,这是我收到错误的地方。

也许当我刷新页面时,会执行不同的代码路径。但我仍然认为这是一个应该始终有效的本机PHP类,但在我的情况下,它会抛出错误。

我在Windows上使用PHP,Apache2,最初是通过Zend Studio IDE套件安装的。

class description本身并没有给我任何提示。为什么会抛出错误,我该如何解决?

更新 *

我的代码是:

if (!isset($modelNumber)) //$modelNumber is NULL when I refresh
        throw new InvalidArgumentException("Error");

所以无论什么时候我打这个课我都会遇到这个错误。当我删除isset行并直接抛出类时,它总是给我错误。

3 个答案:

答案 0 :(得分:14)

您正在为引发异常的类使用命名空间。因此,PHP正在寻找一个名为&#34; InvalidArgumentException&#34;的类。 该命名空间内。但是,全局命名空间中存在InvalidArgumentException。因此,为了访问它,只需在异常之前添加一个反斜杠:

throw new \InvalidArgumentException("Error");

答案 1 :(得分:2)

尝试之前添加反斜杠。

throw new \InvalidArgumentException("Error");

答案 2 :(得分:1)

尝试使用

use http\Exception\InvalidArgumentException;