在Laravel框架中,每当您尝试从您的雄辩模型中获取一些数据时,如果发生异常,它将抛出一个ModelNotFoundException
。在我的项目中,我需要捕获此异常并将用户重定向到特定路由。发现一个异常抛出另一个...有没有其他方法?
,我已经结束了解决的办法是这样的:
try{
$foundUser = $this->user->whereId($id)->firstOrFail();
}catch(ModelNotFoundException $e){
throw new NonExistantUserException;
}
我知道,我可以把我的重定向代码的catch块,但我已经抓住这些种类在全球例外。 PHP:
App::error(function(NonExistantUserException $e)
{
return Redirect::back()->WithInput();
});
我想知道有没有办法说,例如无论try块内会发生什么样的异常我想捕获它NonExistantUserException
只是这个尝试块!
我在问,因为捕捉异常抛出另一个。对我来说似乎是一个不好的习惯
谢谢先进。
这不一定是坏习惯。将一个异常转换为另一个异常(通过捕捉异常)是一件非常有趣的事情。 – deceze 2014-11-20 17:12:38
谢谢@deceze。 – 2014-11-20 20:41:50