小编rob*_*nch的帖子

如何捕获Symfony2控制器操作中可能出现的所有异常?

我正在尝试构建一个REST Web服务,为所有调用返回JSON.通常这很简单,我只是喜欢这样:

return new Response(json_encode($return_object));
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该如何以全球方式拦截异常?我想这样做,因为如果我的应用程序中的任何地方发生异常,我仍然希望向客户端返回一条JSON消息,基本上说"哟dawg,我听说你喜欢异常".我的想法是,在成功和失败案例中返回JSON将简化任何客户端实现我的API所需的工作.

到目前为止,我唯一能想到的是编写每个控制器动作,如下所示:

public function generateMemeAction($arg1, $arg2) {
  $return_object = array();
  try {
    // stuff to generate meme here
    $return_object['status'] = "GREAT SUCCESS!";
  } catch (Exception $e) {
    // epic fail
    $return_object['status'] = "UnluckyBrianException";
  }
  return new Response(json_encode($return_object));
}
Run Code Online (Sandbox Code Playgroud)

这一切都很精彩,但是对于我的应用程序中的每个动作,try-catch块都是相同的,每次我必须编辑一堆复制意大利面时,我会觉得很傻.专业提示?

rest exception-handling symfony

18
推荐指数
1
解决办法
1万
查看次数

标签 统计

exception-handling ×1

rest ×1

symfony ×1