2011-07-07 5 views
0

私は、次の機能があります。その特定のZend_Http_Client_Adapter_Exceptionを引くための偉大な動作しているようですZend_Http_Clientですべての例外を試すか?

public function getClientTable($feedUrl) 
{ 
    $client = new Zend_Http_Client($feedUrl); 

    try 
    { 
     return $client->request()->getBody(); 
    } 
    catch (Zend_Http_Client_Adapter_Exception $e) 
    { 
     return false; 
    } 
} 

を。追加の例外を検出したい場合はどうすればよいですか?地獄、もし私がすべての例外を捕まえたいのなら...どうすればいい?

また、tryで「return」または「throw」を使用する必要がありますか?なぜそれは重要ですか?

答えて

4

あなたは、複数のcatchステートメントを持つことができ、例えば

try { 
    // whatever 
} catch (Zend_Http_Client_Adapter_Exception $e) { 
    // ah ha 
} catch (Zend_Some_other_Exception $e) { 
    // ah ha 
} catch (Exception $e) { 
    // And the final fallback catch that grabs all exceptions 
} 
+1

"例外" もZend_Http_Client_Adapter_ExceptionとZend_Http_Client_Exceptionを捕まえるのでしょうか? 返品の代わりに「スロー」を使用する必要がありますか? –

+0

例外は、それにマッチする最初のハンドラによってのみ捕捉されます。 –

+0

リトローまたはリターンは、getClientTableを呼び出すメソッドがどのように動作しなければならないかによって異なります。どちらかの呼び出しが例外を捕捉して処理します(つまり、再スローします)。または、失敗を示す値を返し、呼び出し元でそれを処理します。 –

関連する問題