2010-02-02 5 views
0

Comment puis-je attraper mon défaut de savon personnalisé ProductoInexistente lorsque vous demandez une opération de service web de savon? mon code est le suivant, mais cela ne fonctionne pas:Zend Framework: attraper les exceptions de savon personnalisé

$_WSDL_URI = 'http://joaquinlrobles.redirectme.net:8080/Pelopincho/PelopinchoService?WSDL'; 
$ws = new Zend_Soap_Client($_WSDL_URI, array('soap_version' => SOAP_1_1)); 
try { 
$resultado = $ws->getStockProducto(array('idProducto' => $idProducto)); 
$this->view->resultado = $resultado->result; 
} 
catch (ProductoInexistente $ex) { 
$this->view->resultado = 'Producto Inexistente'; 
} 

merci!

Répondre

0

Existe-t-il une exception de type ProductoInexistente?
Essayez de changer le code à

$_WSDL_URI = 'http://joaquinlrobles.redirectme.net:8080/Pelopincho/PelopinchoService?WSDL'; 
$ws = new Zend_Soap_Client($_WSDL_URI, array('soap_version' => SOAP_1_1)); 
try { 
$resultado = $ws->getStockProducto(array('idProducto' => $idProducto)); 
$this->view->resultado = $resultado->result; 
} 
catch (Exception $ex) { 
var_dump($ex); 
} 

Et voir quel est le nom de la classe d'exception.
À moins l'exception de ProductoInexistente il ne peut pas être pris par catch(ProductoInexistente $ex)

+0

bien, avec la décharge, je peux voir que cette prise exception est une exception ProductoInexistente: objet (SoapFault) # 53 (9) {[ "message: protégé "] => string (25)" comun.ProductoInexistente "... –

+0

Eh bien, ce n'est pas le cas. L'objet de l'exception semble être SoapFault. Donc, si vous essayez {...} catch (SoapFault $ ex) {...} vous devriez attraper l'exception. –

+0

oui, je devrais attraper toutes les exceptions personnalisées lancées par l'opération ... dans C# vous devriez attraper System.Services.SoapFault et tout est OK ... et que dois-je faire ici pour traiter chaque exception personnalisée lancée séparément? –

Questions connexes