| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- 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 language="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 <methodname>post()</methodname>
- nicht.
- </para>
- </listitem>
- <listitem>
- <para>
- <classname>Zend_Gdata_App_HttpException</classname> indiziert das eine
- <acronym>HTTP</acronym> 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
- <command>$e->getMessage()</command> 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 <acronym>URL</acronym> 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 <acronym>API</acronym> Dokumentation für Informationen darüber welche
- Ausnahme Subklassen durch welche Methoden in <classname>Zend_Gdata</classname> geworfen
- werden.
- </para>
- <programlisting language="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>
|