Zend_Gdata_Exception.xml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17133 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.gdata.exception">
  5. <title>Gdata Ausnahmen auffangen</title>
  6. <para>
  7. Die <classname>Zend_Gdata_App_Exception</classname> Klasse ist eine Basis Klasse für
  8. Ausnahmen die durch <classname>Zend_Gdata</classname> geworfen werden. Man kann jede durch
  9. <classname>Zend_Gdata</classname> geworfene Ausnahme auffangen indem
  10. <classname>Zend_Gdata_App_Exception</classname> aufgefangen wird.
  11. </para>
  12. <programlisting language="php"><![CDATA[
  13. try {
  14. $client =
  15. Zend_Gdata_ClientLogin::getHttpClient($username, $password);
  16. } catch(Zend_Gdata_App_Exception $ex) {
  17. // Die Ausnahme an den Benutzer bekanntgeben
  18. die($ex->getMessage());
  19. }
  20. ]]></programlisting>
  21. <para>
  22. Die folgenden Ausnahme Subklassen werden von <classname>Zend_Gdata</classname> verwendet:
  23. <itemizedlist>
  24. <listitem>
  25. <para>
  26. <classname>Zend_Gdata_App_AuthException</classname> indiziert das die Benutzer
  27. Account Daten nicht gültig sind.
  28. </para>
  29. </listitem>
  30. <listitem>
  31. <para>
  32. <classname>Zend_Gdata_App_BadMethodCallException</classname> indiziert das eine
  33. Methode für ein Service aufgerufen wurde der diese Methode nicht unterstützt.
  34. Zum Beispiel unterstützt der CodeSearch Service <methodname>post()</methodname>
  35. nicht.
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. <classname>Zend_Gdata_App_HttpException</classname> indiziert das eine HTTP
  41. Anfrage nicht erfolgreich war. Bietet die Möglichkeit das komplette
  42. <classname>Zend_Http_Request</classname> Objekt zu erhalten um den exakten Grund
  43. des Fehlers festzustellen in den Fällen in denen <code>$e->getMessage()</code>
  44. nicht genug Details liefert.
  45. </para>
  46. </listitem>
  47. <listitem>
  48. <para>
  49. <classname>Zend_Gdata_App_InvalidArgumentException</classname> wird geworfen
  50. wenn eine Anwendung einen Wert bietet der in dem gegebenen Kontext nicht gültig
  51. ist. Zum Beispiel wenn ein Kalender Sichtbarkeits Wert von "banana" spezifiziert
  52. wird, oder ein Blogger Feed geholt werden soll ohne einen Blog Namen zu
  53. spezifizieren.
  54. </para>
  55. </listitem>
  56. <listitem>
  57. <para>
  58. <classname>Zend_Gdata_App_CaptchaRequiredException</classname> wird geworfen
  59. wenn ein ClientLogin Versuch stattfindet und eine <trademark>CAPTCHA</trademark>
  60. Challenge vom Authentifikations Service empfangen wird. Diese Ausnahme enthält
  61. eine Token ID und eine URL zu einem <trademark>CAPTCHA</trademark> Challenge
  62. Bild. Dieses Bild ist ein visuelles Puzzle das dem Benutzer angezeigt werden
  63. sollte. Nachdem die Antwort des Benutzers auf dieses Challenge Bild gesammelt
  64. wurde, kann die Antwort im nächsten ClientLogin Versuch inkludiert werden.
  65. Alternativ kann der Benutzer direkt zu dieser Webseite geleitet werden:
  66. <ulink url="https://www.google.com/accounts/DisplayUnlockCaptcha"/>
  67. Weitere Informationen können in der
  68. <link linkend="zend.gdata.clientlogin">ClientLogin Dokumentation</link> gefunden
  69. werden.
  70. </para>
  71. </listitem>
  72. </itemizedlist>
  73. </para>
  74. <para>
  75. Man kann diese Ausnahme Subklassen verwenden um spezielle Ausnahmen unterschiedlich zu
  76. handhaben. Siehe die API Dokumentation für Informationen darüber welche Ausnahme Subklassen
  77. durch welche Methoden in <classname>Zend_Gdata</classname> geworfen werden.
  78. </para>
  79. <programlisting language="php"><![CDATA[
  80. try {
  81. $client = Zend_Gdata_ClientLogin::getHttpClient($username,
  82. $password,
  83. $service);
  84. } catch(Zend_Gdata_App_AuthException $authEx) {
  85. // Die Benutzer Account Daten sind nicht korrekt.
  86. // Es wäre nett dem Benutzer einen zweiten Versuch zu geben.
  87. ...
  88. } catch(Zend_Gdata_App_HttpException $httpEx) {
  89. // Google Data Server konnten nicht erreicht werden.
  90. die($httpEx->getMessage);
  91. }
  92. ]]></programlisting>
  93. </sect1>