Php XMLRPC捕获脚本执行错误并在响应中显示它们
如何将脚本执行错误传递给XMLRPC响应,以避免出现错误异常 也许我的设置不对: 在XMLRPC服务器中,我添加了Php XMLRPC捕获脚本执行错误并在响应中显示它们,php,error-handling,xml-rpc,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:
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);
文件:
脚本出现错误时的XMLRPC错误示例:
Fault Exception:\n651Failed to parse response
Fatal error: Call to undefined method
脚本出现错误时的示例:
Fault Exception:\n651Failed to parse response
Fatal error: Call to undefined method
两者都来自同一个脚本错误,但我需要XMLRPC在响应中显示致命错误消息,而不是给出解析失败的响应。您可以使用该函数截获脚本错误,而不是抛出:
因此,当您调用Zend_XmlRpc_Server::handle()时:
编辑:错误例外页面中的示例#1错误。使用此答案中的版本。Hmm,添加代码时,这会给我一个404错误代码和一个未知错误错误字符串:数组([0]=>Array([faultCode]=>404[faultString]=>unknown error)),如果我删除了你的代码,功能就可以正常工作,添加你的代码我得到上面的评论我的坏,代码是错误的。我从php.net复制/粘贴了一个糟糕的示例。另外,我看到您特别想捕获一个致命错误。这些根本不可能被困住,你必须在它们发生之前阻止它们。您的致命错误发生在哪里?我只是想让它用于开发,因为使用新功能运行XMLRPC有时会破坏当前进程。现在我有一个单独的脚本,它只是实例化一个新类,并运行与XMLRPC服务相同的过程。更正错误(如果有),然后运行XMLRPC服务以完成该过程。每隔一段时间,可能会有一些东西通过测试,导致XMLRPC出现错误异常:\n651无法解析响应,这有时是一个很难跟踪的问题。只是想寻找一种更有效的调试/测试方法。另一个注意事项是我回显/打印所有已执行操作的XMLRPC响应(在开发过程中是一个数组),回显$server->handle();在生产中,我只给出作为XMLRPC响应执行的最后一个操作