0

我正在尝试捕获块QueryException中的错误try/catch。我正在migrate:fresh从终端运行命令并设置一些配置值。我想排除一些异常并在出现此错误时捕获它。我尝试了一切,但似乎无法成功。

命令

php artisan migrate:fresh --seed

错误

Illuminate\Database\QueryException SQLSTATE[08006] [7] FATAL: 数据库“x”不存在(SQL: select tablename from pg_catalog.pg_tables where schemana*me in ('public'))

代码

try {
    DB::purge('pgsql');
    Config::set('database.connections.pgsql.database', $config['database']);
    Config::set('database.connections.pgsql.username', $config['username']);
    Config::set('database.connections.pgsql.password', $config['password']);
} catch (\Throwable $e) {
    dd($e); //it never gets here
    Log::error($e->getMessage());
}

我也试过

catch (\Illuminate\Database\QueryException $e) 
catch (\Exception $e)
catch (\PDOException $e)

有没有办法做到这一点?

4

1 回答 1

1

经过数小时的尝试,我设法发现了错误。$this->laravel->call([$this, 'handle']) 在另一个类中,而这正是 try/catch 块的实际位置。

于 2022-01-05T13:13:44.113 回答