Zend_Gdata_Exception.xml 4.5 KB

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