Zend_Rss_Feed_Reader -> Как избежать исключения, если источник фида становится недействительным? - PullRequest
0 голосов
/ 28 ноября 2010

У меня было следующее:

  $feedUrl = 'http://www.something.org/?feed=rss2';
  $feed = Zend_Feed_Reader::import($feedUrl);
  $lastNews = array();
   //etc...

  return $lastNews;

Проблема заключалась в том, что, если канал не существовал по какой-то причине, Zend сгенерирует исключение, и весь мой сайт останется бесполезным с этим сообщением об исключении.

В итоге я делаю так:

try {
  $feedUrl = 'http://www.something.org/?feed=rss2';
  $feed = Zend_Feed_Reader::import($feedUrl);
  $lastNews = array();
   //etc...

  return $lastNews;
}
catch (Exception $e)
{
   return false;
}

Это работает, но я только что это придумал.Не уверен, что все в порядке.Есть предложения?

С уважением, MEM

1 Ответ

2 голосов
/ 29 ноября 2010

Это, по сути, способ обработки исключения. Я не уверен, что если бы я возвратил false, мои предпочтения, вероятно, были бы для пустого array, так что мне не нужно иметь оператор if, инкапсулирующий циклы, которые используют возвращаемое значение ... но это полностью зависит от вас.

Единственное другое исключение - использование более конкретного исключения, например

try {

}
catch(Zend_Feed_Reader_Exception)
{

}

Таким образом, если возникает другая ошибка, вы можете обработать ее другим способом. Я не уверен, что исключение действительно существует, но, вероятно, существует одно или несколько исключений, уникальных для компонента Zend_Feed. Взгляните на код или документы, чтобы выяснить, какие из них вы хотите поймать и обработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...