我是zendframework的新手。我正在使用apigility进行休息服务,而ApiProblemListner则在发生任何错误时返回响应。
我在模型中有一个函数,这个函数只是通过使用php异常在catch块中使用的异常
我使用模型函数作为控制器中的实用函数来捕获那些异常。在捕捉我正在使用的异常时
try{
imageUploade(); // this function in model and throwing exception if any error
}catch(\Exception $e){
return new ApiProblemResponse(new ApiProblem(500 , $e->getMessage()));
}
如果imageUploade()如果图像大小更多则抛出异常,那么我能够捕获catch块中的异常。我尝试echo $e->getMessage();
并打印异常bt,如果我使用new ApiProblem(500 , $e->getMessage())
它不会使用500消息重新调整json错误响应。它什么也没有回来。即使它没有显示任何错误。
似乎无法使用此类呈现错误。我不确定是否需要添加任何事件。
我试图搜索文档但无法找到它。
提前致谢。
答案 0 :(得分:1)
通常,如果从控制器操作直接返回ApiProblemResponse
,它应该可以正常工作。
你确定您的Api-Problem模块是否有效?
尝试这样一次:
<?php
Application\Namespace;
use ZF\ApiProblem\ApiProblem;
use ZF\ApiProblem\ApiProblemResponse;
class IndexController
{
/**
* @return ApiProblemResponse
*/
public function indexAction()
{
return new ApiProblemResponse(new ApiProblem(500, 'test'));
}
}
如果这不起作用,那么我认为您的Api-Problem模块没有运行或者异常从未被捕获。