I'm sorry, but your code doesn't work for me, heres a dump of what I did: *[pazevedo@scmat116 html]$ cat t.php* <?php try { $client = new SoapClient( "http://127.0.0.1/nonexiting.wsdl", array('exceptions' => True) ); } catch( Exception $exception ) { echo $exception; } echo PHP_EOL, PHP_EOL, "Look I finished the program and didn't crash!"; ?> *[pazevedo@scmat116 html]$ php t.php* PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from ' http://127.0.0.1/nonexiting.wsdl' : failed to load external entity " http://127.0.0.1/nonexiting.wsdl" in /var/www/html/t.php on line 11 Do you use any special/specific configuration on your php.ini ? I tried this on PHP 5.2.10 on Windows and Linux. 2009/7/31 Richard Quadling <rquadling@googlemail.com> > 2009/7/31 Paulo Azevedo <halufa@gmail.com>: > > Thanks for your answer. > > Your code is complaining about loading the extension, not the WSDL file. > > > > I've tried this code: > > $client = new SoapClient( "http://127.0.0.1/nonexiting.wsdl", > > array( > > 'exceptions' => true, > > 'trace' => true, > > 'cache_wsdl' => WSDL_CACHE_NONE > > ) > > ); > > > > and it gives the error: > > PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from ' > > http://127.0.0.1/nonexiting.wsdl' : failed to load external entity " > > http://127.0.0.1/nonexiting.wsdl" > > > > As far as i know the 'exceptions' => true is set by default but it only > > works for SoapFault exceptions. > > > > 2009/7/31 Richard Quadling <rquadling@googlemail.com> > > > >> 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 > >> > > > > > > > > -- > > -Paulo > > http://twitter.com/halufa > > > > Really? > > Look at my code ... > > <?php > try > { > // $client=new > SoapClient(' > http://api.rkd.reuters.com/schemas/wsdl/Charts_1_HttpAndRKDToken.wsdl', > array('exceptions' => True)); > $client = new SoapClient( "http://127.0.0.1/nonexiting.wsdl", > array('exceptions' => True)); > } > catch(Exception $exception) > { > echo $exception; > } > echo PHP_EOL, PHP_EOL, "Look I finished the program and didn't crash!"; > ?> > > See the message at the end? > > I run this and get output of ... > > =============== > SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load > from 'http://127.0.0.1/nonexiting.wsdl' : failed to load external > entity "http://127.0.0.1/nonexiting.wsdl" > in Z:\soapbad.php:5 > Stack trace: > #0 Z:\soapbad.php(5): SoapClient->SoapClient('http://127.0.0....', Array) > #1 {main} > > Look I finished the program and didn't crash! > ================= > > > If you are getting the SOAPclient to throw an exception, you would > normally be expected to catch it. > > Other wise you end up with an uncaught exception. I use a global > handler for these so I can be lazy. > > My catch() clause could just as easily have been ... > > echo "We didn't get what we wanted.", PHP_EOL; > > > > -- > ----- > 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 > -- -Paulo http://twitter.com/halufa