Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否尝试捕获Zend_Http_客户端的所有异常?_Php_Zend Framework_Try Catch - Fatal编程技术网

Php 是否尝试捕获Zend_Http_客户端的所有异常?

Php 是否尝试捕获Zend_Http_客户端的所有异常?,php,zend-framework,try-catch,Php,Zend Framework,Try Catch,我有以下功能: public function getClientTable($feedUrl) { $client = new Zend_Http_Client($feedUrl); try { return $client->request()->getBody(); } catch (Zend_Http_Client_Adapter_Exception $e) { return false;

我有以下功能:

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

    try
    {
        return $client->request()->getBody();
    }
    catch (Zend_Http_Client_Adapter_Exception $e)
    {
        return false;
    }
}
它似乎非常适合捕捉特定的Zend_Http_客户端_适配器_异常;但是如果我想让它捕获额外的异常呢?见鬼,如果我想让它捕捉所有的异常。。。我该怎么做


另外,我应该在尝试中使用“return”还是“throw”?为什么这很重要?

您可以有多个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
}

您可以有多个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
}

“异常”还会捕获Zend_Http_客户端_适配器_异常和Zend_Http_客户端_异常吗?我应该使用“throw”而不是return吗?异常将被第一个只匹配它的处理程序捕获。Rethrow或return取决于调用getClientTable的方法的工作方式。要么调用它捕获异常并处理它(即重新调用它),要么只返回一个表示失败的值并在调用程序中处理它。我的意思是,我可以只放置catch(异常),还是需要执行所有3个catch?@Jason Axelrod你可以。catch(Exception)是通用版本。“Exception”还会捕获Zend_Http_Client_Adapter_Exception和Zend_Http_Client_Exception吗?我应该使用“throw”而不是return吗?异常将被第一个只匹配它的处理程序捕获。Rethrow或return取决于调用getClientTable的方法的工作方式。要么调用它捕获异常并处理它(即重新调用它),要么只返回一个表示失败的值并在调用程序中处理它。我的意思是,我可以只放置catch(异常),还是需要执行所有3个catch?@Jason Axelrod你可以。catch(Exception)是通用版本。