我目前正在尝试在Laravel中捕获PDOException,并在捕获错误后允许我的应用继续。我已经在不同的位置尝试了多次尝试捕获,但是在应用程序失败之前我无法捕获错误。
这是我的模特:
class Oracle extends Eloquent {
protected $connection = 'oracle';
protected $user = '';
protected $table = '';
public $timestamps = false;
public function __construct(array $attributes = array()) {
parent::__construct($attributes);
DB::reconnect('oracle');
$this->table = Config::get('database.connections.oracle.table');
$this->user = Config::get('database.connections.oracle.username');
}
public function scopegetPerms($callback, $db) {
return $callback->select('*')->where('grantee', '=', strtoupper(trim($this->user)))->orderBy('granted_role');
}
}
我正在动态更新oracle
连接设置,并使用DB::reconnect
功能来获取更改。一切都按预期工作。我希望能够捕获无效的用户/密码异常,并在以后继续通知用户。但我试图捕捉异常并没有奏效。
我试图在DB::reconnect()
和查询本身周围放置一个try / catch。
这是我得到的错误:
{"error":{"type":"PDOException","message":"ORA-01017: invalid username\/password; logon denied"
答案 0 :(得分:0)
运行时
new Oracle
在try {}中围绕那个捕捉{},如下所示:
try {
new Oracle;
}catch(PDOException $e){
//Do whatever.
}