问题
我正在使用Silex构建一个小型应用程序。它分为 REST 应用程序和网站。(两个控制器,同一个应用程序)。该网站安装了自己的自定义错误处理程序,它返回一个用户友好的 html 页面。问题在于,在部分专用 REST 应用程序中,我应该以某种方式处理异常以返回类型 [json] 和与错误处理程序的自定义网站不同的内容。
使用 Symfony2
这个论点也可以应用于 Symfony2,我也想有可能的解决方案!
Silex 的第一个解决方案
将方法包装在 try-catch 块中,以便将异常重新抛出到处理程序。
$app->get('/api/show-list', function() use($app){
try {
$show = // db query, etc.
return $app->json(array('show' => $show), 200);
} catch (Exception $e) {
throw new MyException;
}
});
$app->error(function (MyException $e, $code) {
// error api
});
问题是,如果我的控制器抛出异常,将使用默认错误处理程序。一些技巧?Symfony 呢?