【发布时间】:2016-07-04 07:30:04
【问题描述】:
这看起来很奇怪。下面的类工作正常,并显示Fatal error: Uncaught exception 'PDOException' 密码错误,正如我所料。
但是,如果我将 catch{Eception... 替换为 catch{Exception... 则不会显示错误,尽管密码错误。
我试过了
$class_methods = get_class_methods(new Eception);
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
并且该类不存在,那么当Exception 不存在时,为什么它在我的数据库类中工作?
<?php
class Database{
private $host = 'localhost';
private $user = 'root';
private $pass = 'wrong_password';
private $dbname = 'blog';
private $dbh;
private $error;
private $stmt;
public function __construct(){
// Set DSN
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
// Set options
$options = array(
PDO::ATTR_PERSISTENT => TRUE,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create new PDO
try{
$this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
} catch(Eception $e){ // weird behaviour with Exception vs Eception
$this->error = $e->getMessage();
}
}
}
【问题讨论】:
标签: php database exception pdo