我在我的 PHP 应用程序中使用 PDO MySQL 驱动程序,在我的一个模型中,我有这个:
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
不是有效的数据库对象,我会收到此致命错误:
在非对象上调用成员函数 query()
这是意料之中的,但为了让我的最终用户更容易,我不想让他们将方法包装在 try-catch 块中或进行任何错误检查,我想知道如何捕获该致命错误和而是抛出异常(整个应用程序都使用异常)。
是否有某种 PDO 选项使其仅在此类情况下抛出异常?
编辑:重新阅读,我应该补充一点,我有很多代码包装在继承树中的 try-catch 块中,所以如果这产生异常而不是致命错误,我将能够捕获它并终止优雅地应用程序。