2014-03-26 20 views
3

我看到我的php.log這一行:PHP致命錯誤:在線X上的<file>中找不到Class'InvalidArgumentException'?

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本身不提供任何提示。爲什麼它會拋出錯誤,我該如何解決?

UPDATE *

我的代碼是:

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

所以這是每當我打這個班我得到這個錯誤。當我刪除isset行並直接拋出該類時,它總是給我提供錯誤。

回答

9

您正在使用名稱空間作爲拋出異常的類。因此,PHP正在尋找名爲「InvalidArgumentException」的類,該名稱空間在之內。但是,全局命名空間中存在InvalidArgumentException。因此,爲了訪問它,只需在異常之前添加反斜槓:

throw new \InvalidArgumentException("Error"); 
+0

哈,是的,這是做到了,謝謝! – Dennis

2

嘗試在之前添加反斜槓。

throw new \InvalidArgumentException("Error"); 
相關問題