php - Yii2 在控制台模式下捕获异常

标签 php error-handling exception-handling yii2

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

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

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

如果出现异常,则会引发异常并且脚本结束。

我想捕获它并按照我的条件结束它。

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

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

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

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

最佳答案

您需要使用 \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();
}

关于php - Yii2 在控制台模式下捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53159577/

相关文章:

c++ - 为什么在 C++ 中使用 try 和 catch()?

asp-classic - 在经典 ASP 中使用 "on error resume next"以及如何处理错误

asp.net-mvc - 当 View 名称和操作名称不同时的Mvc OnException

php - 对多个单独的 PHP 数组进行排序并保持键同步

php - 复选框选项——选择决定插入数据库的内容

ios - 错误处理: Capture error objects in catch block

c# - C#中的已检查异常捕获

c# - Webforms 数据绑定(bind)与 EF Code-First Linq 查询错误

PHP/CSS 动态填充菜单

php - 字段中格式错误的 Unicode 代码序列