正如标题所说,try/catch
并没有捕获抛出异常。
这是我的代码:
public function edit($id)
{
try {
$this->permissions($id);
return $this->redirect(['edit/list']);
} catch (Exception $e) {
Yii::$app->session->setFlash('error', Yii::t('app', 'PERMISSIONS_NOT_FOUND'));
}
}
我试图抓住permissions()
方法中的异常。权限方法是:
private function persimssions($id)
{
$permitted = false;
if (!$permitted) {
throw new ForbiddenHttpException(Yii::t('app', 'MODULE_NO_PERMISSIONS'));
}
}
有人可以解释我有什么问题吗?谢谢你的帮助
答案 0 :(得分:4)
我几乎确定您的Exception
实际上是yii\db\Exception
- 请在use
语句中进行检查。如果是这样,很明显它不会捕获ForbiddenHttpException
。
如果要捕获所有异常,请在\Exception
中写下catch
或添加正确的use
语句。