这是代码(Laravel中的一小部分):
foreach ($this->getListeners($event) as $listener) {
$response = call_user_func_array($listener, $payload);
Log::debug(var_export($response, true));
...
}
当我在call_user_func_array
周围添加try catch块时,我可以捕获异常,但是当我删除它时,异常消失了,$ response = TRUE;
我需要在set_exception_handler
中处理异常,有人可以告诉我原因吗?
注意:PHP 5.6,Laravel 5.2
答案 0 :(得分:0)
你应该能够自己打破错误。
返回回调的返回值,或者出错时返回FALSE。
要处理错误,您只需执行以下操作:
foreach ($this->getListeners($event) as $listener) {
$response = call_user_func_array($listener, $payload);
if($response === false) {
// do something on error
break;
}
}