La classe Zend_Gdata_App_Exception
est la classe de base de
toutes les exceptions envoyées par les composants Gdata.
try { $client = Zend_Gdata_ClientLogin::getHttpClient($username, $password); } catch(Zend_Gdata_App_Exception $ex) { // Affiche l'exception à l'utilisateur die($ex->getMessage()); }
Voici les sous classes exception utilisées dans Zend_Gdata
:
-
Zend_Gdata_App_AuthException
indique que les identifiants du compte utilisateur sont erronés. -
Zend_Gdata_App_BadMethodCallException
est levée lorsque vous tentez d'utiliser une méthode sur un service qui ne l'implémente pas. Par exemple, le service CodeSearch ne supporte pas la méthodepost()
. -
Zend_Gdata_App_HttpException
indique un échec de requête HTTP. Cette exception vous donne le moyen de récupérer la réponseZend_Http_Response
entière pour déterminer la cause exacte de l'erreur, alors que$e->getMessage()
ne montre pas autant de détails. -
Zend_Gdata_App_InvalidArgumentException
est envoyée lorsque l'application envoie une valeur non attendue. Par exemple spécifier la visibilité d'un calendrier à "banane", ou récupérer le flux d'un blog Blogger sans spécifier le nom du blog en question. -
Zend_Gdata_App_CaptchaRequiredException
est envoyée lorsqu'une tentative de ClientLogin reçoit un challenge CAPTCHA™ depuis le service d'authentification. Cette exception contient un jeton ID et une URL vers une image CAPTCHA™ . Cette image est un puzzle visuel qui devrait être retournée à l'utilisateur du service. Après récupération de la réponse de l'utilisateur, celle-ci peut être incluse lors du ClientLogin suivant. L'utilisateur peut aussi alternativement être redirigé vers ce site : https://www.google.com/accounts/DisplayUnlockCaptcha. De plus amples informations peuvent être trouvées dans la documentation du ClientLogin.
Vous pouvez ainsi utiliser ces sous-classes d'exceptions pour les gérer chacune
différemment. Référez vous à l'API pour savoir quel composant
Zend_Gdata
envoie quel type d'exception.
try { $client = Zend_Gdata_ClientLogin::getHttpClient($username, $password, $service); } catch(Zend_Gdata_App_AuthException $authEx) { // identifiants fournis incorrects // Vous pourriez par exemple offrir une // seconde chance à l'utilisateur ici ... } catch(Zend_Gdata_App_HttpException $httpEx) { // les serveurs Google Data sont injoignables die($httpEx->getMessage); }