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)是通用版本。