吞咽异常并从symfony2中的事件侦听器继续控制器

时间:2015-07-26 21:56:59

标签: symfony exception exception-handling event-listener

我正在从Symfony2中的事件监听器中听kernel.exception 我需要吞下异常,只需添加FlashBag消息,让控制器继续正常运行 这可能吗?怎么样?

1 个答案:

答案 0 :(得分:1)

这就是无效的例外情况。一旦你最终进入该处理程序,你就无法回到你的控制器。但是,您可以打包生成Exception s的单个调用:

# Controller's code prior to error
try {
    # Code that could trigger exception
}catch(\Exception $e){
    # Add message to FlashBag
}
# Controller's code after the error

但你必须考虑前进的有效性。如果抛出Exception,则意味着某些操作无法成功完成。您最终会遗漏一些数据(或无效)并产生一些逻辑错误

如果您决定这样做,您应该始终在try-catch之前或catch块之内指定一些默认值。

希望这会有所帮助......