Zend_Gdata_Exception.xml 4.6 KB

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