The*_*Guy 5 php laravel laravel-4
似乎不可能自己捕获错误,因为得到了laravel 4错误输出.
例如,如果我尝试:
$databaseConfig = Config::get('database.connections.mysql');
$connect = mysql_connect($databaseConfig['host'], $databaseConfig['username'], $databaseConfig['password']);
if (!$connect)
{
return 'error';
}
Run Code Online (Sandbox Code Playgroud)
如果发生错误,我将不会得到"错误",insted laravel向我显示异常(在该橙色站点上).
如果你继续尝试一下,也一样
try {
$pdo = DB::connection('mysql')->getPdo();
}
catch(PDOException $exception) {
return Response::make('Database error! ' . $exception->getCode());
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
Der*_*ola 16
您提供的代码应该可以正常工作.如果我把它放在我的routes.php中,我会看到预期的错误字符串(没有橙色).
Route::get('error', function() {
try
{
$pdo = DB::connection('mysql')->getPdo();
}
catch(PDOException $exception)
{
return Response::make('Database error! ' . $exception->getCode());
}
return 'all fine';
});
Run Code Online (Sandbox Code Playgroud)
这里可能会发生的是,您的PDOException未被捕获.尝试为PDOException添加一个反斜杠,这样你就可以确定它是在根目录中定义的,而不是在当前名称空间中.
catch(\PDOException $exception)
Run Code Online (Sandbox Code Playgroud)
另外,尝试直接从routes.php文件中运行代码,看看它是否表现相同.
| 归档时间: |
|
| 查看次数: |
17649 次 |
| 最近记录: |