XMLRPC捕获脚本执行错误并在响应中显示它们

时间:2011-05-10 16:05:08

标签: php error-handling xml-rpc

如何将脚本执行错误传递给XMLRPC响应,以免出现错误异常?

也许我没有正确设置:

在XMLRPC服务器中,我正在添加Zend_XmlRpc_Server_Fault::attachFaultException('Exception');,如下所示:

Zend_XmlRpc_Server_Fault::attachFaultException('Exception');
$server = new Zend_XmlRpc_Server();

但我仍然遇到错误异常:

Fault Exception:\n651Failed to parse response

如何将脚本执行错误传递给响应?

我也试图设置这个没有运气:

error_reporting(E_ALL); 
ini_set("display_errors",1);
ini_set("xmlrpc_errors",1);

文档:http://php.net/manual/en/errorfunc.configuration.php

脚本出错时的XMLRPC示例错误:

Fault Exception:\n651Failed to parse response

脚本出错时的示例:

Fatal error: Call to undefined method

两者都来自同一个脚本错误,但是我需要XMLRPC在响应中显示致命错误消息,而不是给出失败的解析响应。

1 个答案:

答案 0 :(得分:2)

您可以使用set_error_handler()函数拦截脚本错误,而是抛出ErrorException

function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}

所以当你调用Zend_XmlRpc_Server :: handle()时:

set_error_handler('exception_error_handler');
$server->handle();
restore_error_handler();

编辑: ErrorException页面中的示例#1错误。请改用此答案中的版本。