| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15156 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.gdata.exception">
- <title>Gdata Ausnahmen auffangen</title>
- <para>
- Die <classname>Zend_Gdata_App_Exception</classname> Klasse ist eine Basis Klasse für Ausnahmen die durch <classname>Zend_Gdata</classname>
- geworfen werden. Man kann jede durch <classname>Zend_Gdata</classname> geworfene Ausnahme auffangen indem
- <classname>Zend_Gdata_App_Exception</classname> aufgefangen wird.
- </para>
- <programlisting role="php"><![CDATA[
- try {
- $client =
- Zend_Gdata_ClientLogin::getHttpClient($username, $password);
- } catch(Zend_Gdata_App_Exception $ex) {
- // Die Ausnahme an den Benutzer bekanntgeben
- die($ex->getMessage());
- }
- ]]></programlisting>
- <para>
- Die folgenden Ausnahme Subklassen werden von <classname>Zend_Gdata</classname> verwendet:
- <itemizedlist>
- <listitem>
- <para>
- <classname>Zend_Gdata_App_AuthException</classname> indiziert das die Benutzer Account Daten nicht
- gültig sind.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Gdata_App_BadMethodCallException</classname> indiziert das eine Methode für ein
- Service aufgerufen wurde der diese Methode nicht unterstützt. Zum Beispiel unterstützt
- der CodeSearch Service <code>post()</code> nicht.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Gdata_App_HttpException</classname> indiziert das eine HTTP Anfrage nicht erfolgreich
- war. Bietet die Möglichkeit das komplette <classname>Zend_Http_Request</classname> Objekt zu erhalten um den
- exakten Grund des Fehlers festzustellen in den Fällen in denen <code>$e->getMessage()</code>
- nicht genug Details liefert.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Gdata_App_InvalidArgumentException</classname> wird geworfen wenn eine Anwendung einen
- Wert bietet der in dem gegebenen Kontext nicht gültig ist. Zum Beispiel wenn ein Kalender
- Sichtbarkeits Wert von "banana" spezifiziert wird, oder ein Blogger Feed geholt werden
- soll ohne einen Blog Namen zu spezifizieren.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Gdata_App_CaptchaRequiredException</classname> wird geworfen wenn ein ClientLogin
- Versuch stattfindet und eine <trademark>CAPTCHA</trademark> Challenge vom Authentifikations
- Service empfangen wird. Diese Ausnahme enthält eine Token ID und eine URL zu einem
- <trademark>CAPTCHA</trademark> Challenge Bild. Dieses Bild ist ein visuelles Puzzle das dem
- Benutzer angezeigt werden sollte. Nachdem die Antwort des Benutzers auf dieses Challenge
- Bild gesammelt wurde, kann die Antwort im nächsten ClientLogin Versuch inkludiert werden.
- Alternativ kann der Benutzer direkt zu dieser Webseite geleitet werden:
- <ulink url="https://www.google.com/accounts/DisplayUnlockCaptcha"/>
- Weitere Informationen können in der
- <link linkend="zend.gdata.clientlogin">ClientLogin Dokumentation</link> gefunden werden.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Man kann diese Ausnahme Subklassen verwenden um spezielle Ausnahmen unterschiedlich zu handhaben. Siehe
- die API Dokumentation für Informationen darüber welche Ausnahme Subklassen durch welche Methoden in
- <classname>Zend_Gdata</classname> geworfen werden.
- </para>
- <programlisting role="php"><![CDATA[
- try {
- $client = Zend_Gdata_ClientLogin::getHttpClient($username,
- $password,
- $service);
- } catch(Zend_Gdata_App_AuthException $authEx) {
- // Die Benutzer Account Daten sind nicht korrekt.
- // Es wäre nett dem Benutzer einen zweiten Versuch zu geben.
- ...
- } catch(Zend_Gdata_App_HttpException $httpEx) {
- // Google Data Server konnten nicht erreicht werden.
- die($httpEx->getMessage);
- }
- ]]></programlisting>
- </sect1>
|