Re: [SOAP] Re: E_ERROR in SoapClient
| From: | Richard Quadling | Date: | Fri, 31 Jul 2009 15:52:59 +0000 |
| Subject: | Re: [SOAP] Re: E_ERROR in SoapClient | ||
| References: | 1 2 3 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-2967@lists.php.net to get a copy of this message | ||
2009/7/31 Richard Quadling <rquadling@googlemail.com>:
> 2009/7/31 Paulo Azevedo <halufa@gmail.com>:
>> My problem is that SoapClient triggers a E_ERROR ( Fatal Error ) instead of
>> throwing an Exception.
>> Since E_ERROR cannot be catchable I don't find a way to gracefully handly
>> this problem.
>>
>> PHP Fatal error: SOAP-ERROR: Encoding: object hasn't 'profileData'
>> property
>>
>>
>> Is there any way to gracefully catch this error?
>>
>> --
>> -Paulo
>> http://twitter.com/halufa
>>
>
> You can tell the SoapClient to generate exceptions rather than errors.
>
> [1] "The exceptions option is a boolean value defining whether soap
> errors throw exceptions of type SoapFault."
>
> Regards,
>
> Richard.
>
> [1] http://docs.php.net/manual/en/soapclient.soapclient.php
> --
> -----
> Richard Quadling
> Zend Certified Engineer :
> http://zend.com/zce.php?c=ZEND002498&r=213474731
> "Standing on the shoulders of some very clever giants!"
> ZOPA : http://uk.zopa.com/member/RQuadling
>
<?php
try
{
$client=new SoapClient('http://api.rkd.reuters.com/schemas/wsdl/Charts_1_HttpAndRKDToken.wsdl',
array('exceptions' => True));
}
catch(Exception $exception)
{
echo $exception;
}
echo 'Finished';
outputs ...
SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Unknown required
WSDL extension 'http://schemas.xmlsoap.org/wsdl/soap/'
in
Z:\soapbad.php:4
Stack trace:
#0 Z:\soapbad.php(4): SoapClient->SoapClient('http://api.rkd....', Array)
#1 {main}Finished
--
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
ZOPA : http://uk.zopa.com/member/RQuadling