我正在使用Symfony 2,我正在尝试制作一个小问题解决方案包。
我有一个包含Problem
字段的实体retry
,其中包含有关执行哪个命令以重试之前失败的信息的信息。
所以这是我的控制器的代码:
public function retryAction($id)
{
$em = $this->getDoctrine()->getManager();
$problem = $em->getRepository('RBLogsBundle:Problem')->find($id);
$kernel = $this->get('kernel');
$application = new Application($kernel);
$application->setAutoExit(false);
$input = new ArrayInput($problem->getRetry());
$output = new BufferedOutput();
$application->run($input,$output);
$content = $output->fetch();
return new Response($content);
}
当我的命令失败时,它通常会抛出异常。但是在这里,命令期间抛出的异常似乎停止了命令,但我的控制器的执行仍在继续。
我怎么能在控制器中知道命令是好还是坏?
答案 0 :(得分:2)
抱歉,我在Application
类中找到了包含setCatchExceptions()
方法的解决方案。解决方案如下:
$application = new Application($kernel);
$application->setCatchExceptions(false);