Zend_Gdata_Exception.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  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
  41. <acronym>HTTP</acronym> Anfrage nicht erfolgreich war. Bietet die Möglichkeit
  42. das komplette <classname>Zend_Http_Request</classname> Objekt zu erhalten um den
  43. exakten Grund des Fehlers festzustellen in den Fällen in denen
  44. <command>$e->getMessage()</command> 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 <acronym>URL</acronym> zu einem
  62. <trademark>CAPTCHA</trademark> Challenge Bild. Dieses Bild ist ein visuelles
  63. Puzzle das dem Benutzer angezeigt werden sollte. Nachdem die Antwort des
  64. Benutzers auf dieses Challenge Bild gesammelt wurde, kann die Antwort im
  65. nächsten ClientLogin Versuch inkludiert werden. Alternativ kann der Benutzer
  66. direkt zu dieser Webseite geleitet werden: <ulink
  67. url="https://www.google.com/accounts/DisplayUnlockCaptcha"/> Weitere
  68. Informationen können in der <link linkend="zend.gdata.clientlogin">ClientLogin
  69. Dokumentation</link> gefunden 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 <acronym>API</acronym> Dokumentation für Informationen darüber welche
  77. Ausnahme Subklassen durch welche Methoden in <classname>Zend_Gdata</classname> geworfen
  78. werden.
  79. </para>
  80. <programlisting language="php"><![CDATA[
  81. try {
  82. $client = Zend_Gdata_ClientLogin::getHttpClient($username,
  83. $password,
  84. $service);
  85. } catch(Zend_Gdata_App_AuthException $authEx) {
  86. // Die Benutzer Account Daten sind nicht korrekt.
  87. // Es wäre nett dem Benutzer einen zweiten Versuch zu geben.
  88. ...
  89. } catch(Zend_Gdata_App_HttpException $httpEx) {
  90. // Google Data Server konnten nicht erreicht werden.
  91. die($httpEx->getMessage);
  92. }
  93. ]]></programlisting>
  94. </sect1>