我想知道我应该扔哪里,在我的Zend Framework + Doctrine 2 MVC应用程序中捕获异常。
这是我的设计:
数据库 - MySQL> ORM(Doctrine2)>服务>控制器
我的服务在参数中获取服务对象,并为几乎所有方法返回服务响应对象。
服务响应返回状态,消息和数据,可以是您想要的任何内容。
我的控制器会消耗这些服务。
我想知道我应该在哪里抛出异常。
示例:
public function getAllMembers(ServiceObject $data)
{
// do some mapping with $data
$users = $userRepository->getAllMembers($data);
$response = new ServiceResponse('success');
$response->setData($users);
return $response;
}
我应该检查我的服务中的参数,然后抛出我的控制器可以捕获的异常,或者我应该投入,让我们说这个示例的我的存储库,并抓住我的服务以允许我返回一个ServiceResponse错误状态?
有关此类架构的任何反馈意见?
答案 0 :(得分:0)
我通常通过我的例外深入到代码中(在这种情况下,它将在存储库中),然后在最合适的地方捕获它们。在这种情况下,我认为最合适的做法是在服务中捕获它,然后返回一个带有错误状态的ServiceResponse(否则你只会返回成功消息,这会使ServiceResponse类型冗余)。 / p>