Zend_Gdata_Exception.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.gdata.exception">
  5. <title>Attraper les exceptions Gdata</title>
  6. <para>
  7. La classe <classname>Zend_Gdata_App_Exception</classname> est la classe de base de
  8. toutes les exceptions envoyées par les composants Gdata.
  9. </para>
  10. <programlisting language="php"><![CDATA[
  11. try {
  12. $client =
  13. Zend_Gdata_ClientLogin::getHttpClient($username, $password);
  14. } catch(Zend_Gdata_App_Exception $ex) {
  15. // Affiche l'exception à l'utilisateur
  16. die($ex->getMessage());
  17. }
  18. ]]></programlisting>
  19. <para>
  20. Voici les sous classes exception utilisées dans <classname>Zend_Gdata</classname>
  21. :<itemizedlist>
  22. <listitem>
  23. <para>
  24. <classname>Zend_Gdata_App_AuthException</classname> indique que les
  25. identifiants du compte utilisateur sont erronés.
  26. </para>
  27. </listitem>
  28. <listitem>
  29. <para>
  30. <classname>Zend_Gdata_App_BadMethodCallException</classname> est levée
  31. lorsque vous tentez d'utiliser une méthode sur un service qui ne l'implémente
  32. pas. Par exemple, le service CodeSearch ne supporte pas la méthode
  33. <methodname>post()</methodname>.
  34. </para>
  35. </listitem>
  36. <listitem>
  37. <para>
  38. <classname>Zend_Gdata_App_HttpException</classname> indique un échec de
  39. requête <acronym>HTTP</acronym>. Cette exception vous donne le moyen de récupérer la réponse
  40. <classname>Zend_Http_Response</classname> entière pour déterminer la cause
  41. exacte de l'erreur, alors que <code>$e-&gt;getMessage()</code> ne montre pas
  42. autant de détails.
  43. </para>
  44. </listitem>
  45. <listitem>
  46. <para>
  47. <classname>Zend_Gdata_App_InvalidArgumentException</classname> est envoyée
  48. lorsque l'application envoie une valeur non attendue. Par exemple spécifier la
  49. visibilité d'un calendrier à "banane", ou récupérer le flux d'un blog Blogger
  50. sans spécifier le nom du blog en question.
  51. </para>
  52. </listitem>
  53. <listitem>
  54. <para>
  55. <classname>Zend_Gdata_App_CaptchaRequiredException</classname> est envoyée
  56. lorsqu'une tentative de ClientLogin reçoit un challenge
  57. <trademark>CAPTCHA</trademark> depuis le service d'authentification. Cette
  58. exception contient un jeton ID et une <acronym>URL</acronym> vers une image
  59. <trademark>CAPTCHA</trademark> . Cette image est un puzzle visuel qui devrait
  60. être retournée à l'utilisateur du service. Après récupération de la réponse de
  61. l'utilisateur, celle-ci peut être incluse lors du ClientLogin suivant.
  62. L'utilisateur peut aussi alternativement être redirigé vers ce site : <ulink
  63. url="https://www.google.com/accounts/DisplayUnlockCaptcha"></ulink>. De plus
  64. amples informations peuvent être trouvées dans <link
  65. linkend="zend.gdata.clientlogin">la documentation du ClientLogin</link>.
  66. </para>
  67. </listitem>
  68. </itemizedlist>
  69. </para>
  70. <para>
  71. Vous pouvez ainsi utiliser ces sous-classes d'exceptions pour les gérer chacune
  72. différemment. Référez vous à l'API pour savoir quel composant
  73. <classname>Zend_Gdata</classname> envoie quel type d'exception.
  74. </para>
  75. <programlisting language="php"><![CDATA[
  76. try {
  77. $client =
  78. Zend_Gdata_ClientLogin::getHttpClient($username,
  79. $password,
  80. $service);
  81. } catch(Zend_Gdata_App_AuthException $authEx) {
  82. // identifiants fournis incorrects
  83. // Vous pourriez par exemple offrir une
  84. // seconde chance à l'utilisateur ici
  85. ...
  86. } catch(Zend_Gdata_App_HttpException $httpEx) {
  87. // les serveurs Google Data sont injoignables
  88. die($httpEx->getMessage);
  89. }
  90. ]]></programlisting>
  91. </sect1>