Php 我无法捕获Yii框架中的异常
我正在使用Yii框架,并在下面编写了代码。当没有特定id的条目时,它会发出Php 我无法捕获Yii框架中的异常,php,yii2,Php,Yii2,我正在使用Yii框架,并在下面编写了代码。当没有特定id的条目时,它会发出错误:调用非对象上的成员函数delete(),这是调试模式中指示的yii\base\ErrorException。问题是,尽管我包含了yii\base\ErrorException并将其指定为catch block,但我无法捕获此异常。这里有什么问题 use yii\base\ErrorException; try { $model = Br
错误:调用非对象上的成员函数delete()
,这是调试模式中指示的yii\base\ErrorException
。问题是,尽管我包含了yii\base\ErrorException
并将其指定为catch block,但我无法捕获此异常。这里有什么问题
use yii\base\ErrorException;
try {
$model = BranchUser::findOne($_GET['id']);
$model->delete();
return $this->redirect(['index']);
} catch (ErrorException $e) {
return $this->redirect(['site/error']);
// Error, rollback transaction
throw $e;
// print_r($model->getErrors());
}
这是一个致命错误,无法从中恢复 在尝试使用之前,您应该检查
$model
是否不是null
if ($model === null) {
return $this->redirect(['site/error']);
}
,这很好。我喜欢你的答案,但如果问题是,“如果findOne没有找到任何东西,如何抛出异常?”@IvanButtinoni,那么你抛出异常而不是返回。:)是的,这是一个想法,但乍一看,没有任何事件/行为可以阻止“findOne”的行为:(