我无法在Yii框架中捕获异常

时间:2015-07-10 16:43:45

标签: php yii2

我正在使用Yii框架,并在下面编写代码。当没有特定id的条目时,它会给出Error: Call to a member function delete() on a non-object,这是调试模式中指示的yii\base\ErrorException。问题是尽管我包含yii\base\ErrorException并且指定了catch块,但我无法捕获此异常。这有什么问题?

            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());

            }

1 个答案:

答案 0 :(得分:3)

这是一个致命错误,无法从中恢复。

在尝试使用$model之前,您应检查null是否不是if ($model === null) { return $this->redirect(['site/error']); }

mtcars

Such errors are catchable in PHP 7.0,这样很好。