|
|
1
22
你在使用xdebug吗?根据 this PHP bug report and discussion 至少从php 5.1开始,这个问题就已经解决了,但是 this xdebug bug 以不生成异常和致命错误“泄漏”的方式处理“致命错误到异常转换”。 我可以在启用xdebug的情况下在本地复制:
这给了我您描述的致命错误,甚至没有输入catch子句:
如果我禁用xdebug它就会工作 通话前:
这将按预期触发异常,并且在catch子句中得到一个正确的soapfault对象,消息为:
所以基本上例外情况是按照广告的方式工作的。如果它们在您的情况下不起作用,您可能会遇到xdebug错误,或者与另一个第三方组件类似的问题。 |
|
|
2
1
所以你应该尝试以下方法:
这条路会扔 SoapFault 允许您捕获它们的异常。 |
|
|
3
1
见: http://bugs.xdebug.org/view.php?id=249 可能的解决方案:
|
|
|
4
0
您可以尝试执行curl或fsockopen请求来检查URL是否有效。 |
|
|
5
0
关于您的信息,我正在使用soapclient和phpunit测试远程Web服务,但遇到了同样的问题!
这是我的第一个测试方法: public function testUnavailableURL() {
$client = new SoapClient("http://wrong.URI");
}
以下是phpunit的第一个结果: There was 1 error: 1) MyTestCase::testUnavailableURL RuntimeException: FAILURES! 这是我的第二种测试方法: public function testUnavailableURL() {
try {
$client = @new SoapClient("http://wrong.URI");
} catch (SoapFault $fault) {
print "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})";
}
}
以下是phpunit第二次测试结果: PHPUnit 3.4.6 by Sebastian Bergmann. .SOAP Fault: (faultcode: WSDL, faultstring: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://wrong.URI' : failed to load external entity "http://wrong.URI" )... Time: 3 seconds, Memory: 4.25Mb OK NB:我发现了一张关于这个主题的phpunit罚单: ticket 417 |