正如标题所说,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'));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试捕获方法中的异常permissions()。权限方法是:
private function persimssions($id)
{
$permitted = false;
if (!$permitted) {
throw new ForbiddenHttpException(Yii::t('app', 'MODULE_NO_PERMISSIONS'));
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释我有什么问题吗?谢谢你的帮助
我几乎可以肯定,您Exception实际上是yii\db\Exception- 在use声明中检查这一点。如果是这样,很明显它不会捕获ForbiddenHttpException.
如果你想捕获所有异常写\Exception在catch或添加适当的use语句。
| 归档时间: |
|
| 查看次数: |
1149 次 |
| 最近记录: |