2012-12-29 43 views
5

Vâng err, tôi không biết những gì tôi đã làm sai ....PDO tuyên bố không có ngoại lệ, mặc dù nó nằm bên trong khối try/catch?

Mã này:

 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()); 
     } 

Báo cáo này với tôi:

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

Nhưng, như bạn có thể thấy nó rõ ràng trong một khối thử và nắm bắt.

Lớp mà đoạn mã cụ thể này nằm trong không gian tên, đó là lý do tôi sử dụng "\ PDO" thay vì "PDO" trên dòng hai của mã tôi đã chia sẻ ở trên.

Và oh, yeah, tôi biết rằng DB không tồn tại, nhưng tôi vẫn không muốn điều này xảy ra trong tương lai (không phải là nó sẽ). Tôi muốn xử lý các lỗi đúng cách: (

Trả lời

12
catch(\PDOException $e) 
    ^
+0

Yep, chỉ cần tự tìm ra điều này. Cảm ơn anyway dewd EDIT: 12 phút ... Tôi sẽ quay lại câu trả lời được chấp nhận của bạn. –

Các vấn đề liên quan