2012-03-28 9 views
2

Ich habe Probleme mit Zend-Ausnahmen. Es sieht so aus, als ob Zend eine eigene Exception-Behandlung hat, die die Exceptions nicht zurückwirft. Dann bekomme ich als Ergebnis den weißen Bildschirm mit der Ausnahmebeschreibung. Gibt es eine Möglichkeit, es zu fangen und schön anzuzeigen?Zend fängt alle Ausnahmen vor mir auf?

$client = new Zend_Rest_Client($url); 

// Get instance of Zend_Http_Client 
$httpClient = $client->getHttpClient(); 
// Change the timeout 
$httpClient->setConfig(array(
    "timeout" => 0.1     // This is just for test 
)); 

try { 
    $restClientResult = $client->get(); 
} catch (Zend_Rest_Client_Result_Exception $e) { 
    doSomething();   // <- is not entered here 
} 

Der Fehler ist:

An error occurred 

Exception information: 

Message: Unable to Connect to ssl://localhost/resource:443. Error #110: Connection timed out 

Stack trace: 


#0 /.../lib/Zend/Http/Client.php(974): Zend_Http_Client_Adapter_Socket->connect('localhost/resour...', 443, true) 
#1 /.../lib/Zend/Rest/Client.php(137): Zend_Http_Client->request('GET') 

... 
+1

Sieht aus wie es eine Ausnahme von einem anderen Typ ist, dass Sie nicht fangen . Versuchen Sie 'catch (Exception $ e) {var_dump (get_class ($ e));' um festzustellen, welcher Typ von Ausnahme das ist. – Niko

+1

Ich habe es herausgefunden. Ich habe Zend_Rest_Client_Result_Exception abgefangen. Dies wurde in Zend_Exception geändert und jetzt ist es in Ordnung. @Niko, danke, wir kamen zum selben Schluss :) Bitte beantworte die Frage damit ich sie als Lösung markieren kann. – valk

Antwort

3

Solution (siehe zu Frage zur Erläuterung):

try { 
    $restClientResult = $client->get(); 
} catch (Zend_Exception $e) { 
    doSomething(); 
} 
Verwandte Themen