Php 我无法捕获Yii框架中的异常

Php 我无法捕获Yii框架中的异常,php,yii2,Php,Yii2,我正在使用Yii框架,并在下面编写了代码。当没有特定id的条目时,它会发出错误:调用非对象上的成员函数delete(),这是调试模式中指示的yii\base\ErrorException。问题是,尽管我包含了yii\base\ErrorException并将其指定为catch block,但我无法捕获此异常。这里有什么问题 use yii\base\ErrorException; try { $model = Br

我正在使用Yii框架,并在下面编写了代码。当没有特定id的条目时,它会发出
错误:调用非对象上的成员函数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”的行为:(