控制台模式下的Yii2捕获异常

时间:2018-11-05 17:48:25

标签: php error-handling exception-handling yii2

我正在尝试在控制台应用程序中添加一些错误捕获块。

例如,我有一个SQL代码块,

$query = "SELECT * FROM
          visits_column_maps";
$mapsAry = Yii::$app->db->createCommand($query)->queryAll();

如果有什么事发生,则会引发异常,并且脚本结束。

我想抓住这一点,并按我的意愿结束它。

我尝试了try / catch块;

try {
    $query = "SELECT * FROM
              visits_column_maps";
    $mapsAry = Yii::$app->db->createCommand($query)->queryAll();
} catch(Exception @e) {
    // graceful exit here
    echo "Exception caught";
    exit();
}

但是当通过更改表名进行测试时,在捕获它之前我仍然得到了脚本终止。

我想我可能需要在某个地方调整配置,但不确定在哪里。

感谢您提供的任何帮助。 斯科蒂

1 个答案:

答案 0 :(得分:3)

您需要使用\Exception而不是Exception

try {
    $query = "SELECT * FROM
              visits_column_maps";
    $mapsAry = Yii::$app->db->createCommand($query)->queryAll();
} catch(\Exception $e) {
    // graceful exit here
    echo "Exception caught";
    exit();
}