我在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
行并直接抛出类时,它总是给我错误。
答案 0 :(得分:14)
您正在为引发异常的类使用命名空间。因此,PHP正在寻找一个名为&#34; InvalidArgumentException&#34;的类。 在该命名空间内。但是,全局命名空间中存在InvalidArgumentException。因此,为了访问它,只需在异常之前添加一个反斜杠:
throw new \InvalidArgumentException("Error");
答案 1 :(得分:2)
尝试之前添加反斜杠。
throw new \InvalidArgumentException("Error");
答案 2 :(得分:1)
尝试使用
use http\Exception\InvalidArgumentException;