[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Gdata_Exception.xml
blob3011eaa882e4b4ba9f33a3a66a22ac2d61ab503a
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20779 -->
4 <sect1 id="zend.gdata.exception">
5     <title>Gdata の例外処理</title>
7     <para>
8         <classname>Zend_Gdata_App_Exception</classname> は、
9         <classname>Zend_Gdata</classname> がスローする例外の基底クラスです。
10         <code>Zedn_Gdata</code> がスローする例外は、すべて <classname>Zend_Gdata_App_Exception</classname> でキャッチできます。
11     </para>
13     <programlisting language="php"><![CDATA[
14 try {
15     $client =
16         Zend_Gdata_ClientLogin::getHttpClient($username, $password);
17 } catch(Zend_Gdata_App_Exception $ex) {
18     // 例外の内容をユーザに報告します
19     die($ex->getMessage());
21 ]]></programlisting>
23     <para>
24         <classname>Zend_Gdata</classname> では、以下のような例外サブクラスを使用しています。
26         <itemizedlist>
27             <listitem>
28                 <para>
29                     <classname>Zend_Gdata_App_AuthException</classname>
30                     は、ユーザのアカウントの情報が無効であることを表します。
31                 </para>
32             </listitem>
33             <listitem>
34                 <para>
35                     <classname>Zend_Gdata_App_BadMethodCallException</classname>
36                     は、そのサービスがサポートしていないメソッドをコールしたことを表します。
37                     たとえば、CodeSearch サービスは <methodname>post()</methodname>
38                     をサポートしていません。
39                 </para>
40             </listitem>
41             <listitem>
42                 <para>
43                     <classname>Zend_Gdata_App_HttpException</classname>
44                     は、<acronym>HTTP</acronym> リクエストが失敗したことを表します。
45                     <classname>Zend_Http_Response</classname> オブジェクトの中身を調べることで、
46                     実際の原因がわかります。この場合は
47                     <command>$e->getMessage()</command> の情報だけでは不十分です。
48                 </para>
49             </listitem>
50             <listitem>
51                 <para>
52                     <classname>Zend_Gdata_App_InvalidArgumentException</classname>
53                     は、その状況では無効な値を指定したことを表します。
54                     たとえば、カレンダーの可視性に "banana"
55                     を指定したり、blog の名前を省略して Blogger のフィードを取得したりといった場合です。
56                 </para>
57               </listitem>
58               <listitem>
59                 <para>
60                   <classname>Zend_Gdata_App_CaptchaRequiredException</classname>
61                   は、ClientLogin を試みた際に認証サービスから
62                   <trademark>CAPTCHA</trademark> チャレンジを受け取った場合にスローされます。
63                   この例外の中には、トークン ID および
64                   <trademark>CAPTCHA</trademark> チャレンジ画像への <acronym>URL</acronym>
65                   が含まれています。この画像はパズルのようなもので、
66                   これをユーザに対して表示させる必要があります。
67                   チャレンジ画像に対するユーザからの応答を受け取ったら、
68                   それを用いて再度 ClientLogin を試みることができます。
69                   あるいは、ユーザが直接
70                   <ulink url="https://www.google.com/accounts/DisplayUnlockCaptcha"/>
71                   を使用することもできます。詳細な情報は
72                   <link linkend="zend.gdata.clientlogin">ClientLogin のドキュメント</link>
73                   を参照ください。
74                 </para>
75               </listitem>
76         </itemizedlist>
77     </para>
79     <para>
80         これらの例外サブクラスを使用すると、より細やかな例外処理を行なえます。
81         どの <classname>Zend_Gdata</classname> のメソッドがどんな例外サブクラスをスローするのかについては、
82         <acronym>API</acronym> ドキュメントを参照ください。
83     </para>
85     <programlisting language="php"><![CDATA[
86 try {
87     $client = Zend_Gdata_ClientLogin::getHttpClient($username,
88                                                     $password,
89                                                     $service);
90 } catch(Zend_Gdata_App_AuthException $authEx) {
91     // ユーザの認証に失敗しました
92     // もう一度認証を行うなどの処置が適切でしょう
93     ...
94 } catch(Zend_Gdata_App_HttpException $httpEx) {
95     // Google Data のサーバに接続できませんでした
96     die($httpEx->getMessage);}
97 ]]></programlisting>
99 </sect1>