Yii2 在控制台模式下捕获异常
Yii2 Catching Exceptions in Console Mode
我正在尝试在我的控制台应用程序中添加一些错误捕获块。
具体来说,例如我有一个 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();
}
但是当通过更改 table 名称进行测试时,我仍然会在捕获它之前得到一个脚本终止。
我想我可能需要在某个地方调整配置,但不确定在哪里。
感谢您提供的任何帮助。
斯科蒂
您需要使用 \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();
}
我正在尝试在我的控制台应用程序中添加一些错误捕获块。
具体来说,例如我有一个 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();
}
但是当通过更改 table 名称进行测试时,我仍然会在捕获它之前得到一个脚本终止。
我想我可能需要在某个地方调整配置,但不确定在哪里。
感谢您提供的任何帮助。 斯科蒂
您需要使用 \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();
}