2012-12-29 38 views
5

那麼錯了,我不知道我做錯了什麼....PDO聲稱未捕獲異常,即使它位於try/catch塊內部?

此代碼:

 try { 
      $this->CONN = new \PDO('mysql:dbname='.PASTEAES_DBNAME.';host='.PASTEAES_SERVER, PASTEAES_USERNAME, PASTEAES_PASSWORD); 
      $this->CONN->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     } catch(PDOException $e) { 
      $this->raiseError('Fatal MySQL error', $e->getMessage()); 
     } 

將此報告給我:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1049] Unknown database 'pasteaes'' in /var/www/pasteaes/common/class.pasteaes.php on line 25

但是,正如你可以看到它顯然是在嘗試和捕捉塊。

這段特定代碼所在的類是名稱空間,這就是爲什麼我在上面共享的代碼的第二行使用「\ PDO」而不是「PDO」的原因。

噢,是的,我知道數據庫不存在,但我仍然不希望在將來發生這種情況(不會發生這種情況)。我想正確處理錯誤:(

回答

12
catch(\PDOException $e) 
    ^
+0

是的,只是想通了自己。謝謝無論如何dewd。編輯:12分鐘......我會回來爲您接受的答案。 –