我用我的PHP應用程序的PDO MySQL驅動程序,並在我的模型之一,我有這樣的:追趕PDO致命的錯誤,引發異常
public function getAllUsers() {
$this->st = $this->db->query('SELECT name FROM users');
$this->st->setFetchMode(PDO::FETCH_OBJ);
$users = array();
while($row = $this->st->fetch()) {
array_push($users, $row->name);
}
return $users;
}
$this->db
在數據庫處理從父類繼承。問題是,如果由於某種原因$this->db
是不是有效的數據庫對象我得到這個致命的錯誤:
Call to a member function query() on a non-object
,這是可以預期的,但要使它更容易爲我的最終用戶,我不希望讓他們在try-catch塊中包裝方法或做任何錯誤檢查,我想知道如何捕獲致命錯誤並拋出異常(整個應用程序使用異常)。
是否有某種PDO選項使得它僅在這些情況下拋出異常?
編輯:重新閱讀,我應該補充說,我有很多代碼包裝在try-catch塊進一步在繼承樹,所以如果這產生了一個異常,而不是致命的錯誤,我將能夠抓住它並優雅地終止應用程序。
什麼原因會'$這個 - > db'不是一個有效的數據庫對象?如果您正在使用它來獲取此類中的數據,似乎應該保證。爲什麼不首先檢查它,如果它不是一個有效的對象,拋出一個異常說沒有數據庫連接。 – drew010