2010-11-28 30 views
0

J'ai eu les suivantes:Zend_Rss_Feed_Reader -> Comment éviter une exception si la source d'alimentation est invalide?

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

    return $lastNews; 

Le problème est que, si l'alimentation n'existait pas pour somereason, Zend lancera une exception et tout mon site restera inutile avec ce message d'exception.

je finis par faire comme ceci:

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

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

Il fonctionne, mais je viens d'inventer cela. Je ne sais pas si c'est bon. Aucune suggestion?

Cordialement, MEM

Répondre

2

Ce essentiellement la façon dont vous gérer une exception. Je ne suis pas sûr si je retournerais faux, ma préférence serait probablement pour un array vide de sorte que je n'ai pas besoin d'avoir une déclaration if encapsulant des boucles qui utilisent la valeur de retour ... mais c'est entièrement à vous.

La seule autre exception serait d'utiliser une exception plus spécifique comme

try { 

} 
catch(Zend_Feed_Reader_Exception) 
{ 

} 

De cette façon, si une autre erreur se produit, vous pouvez le manipuler d'une façon différente. Je ne suis pas sûr que l'exception existe réellement mais il y a probablement une ou plusieurs exceptions uniques au composant Zend_Feed. Jetez un coup d'œil au code ou aux documents pour savoir lequel (s) vous voulez attraper et manipuler.

+0

Je suis d'accord. Je retournerais un tableau vide. Si l'appelant attend un tableau, vous devriez en retourner un. Je suis également d'accord que vous devriez essayer d'attraper les exceptions spécifiques qui pourraient être jetées. –