Gdata の例外処理
Zend_Gdata_App_Exception は、
Zend_Gdata がスローする例外の基底クラスです。
Zedn_Gdata
がスローする例外は、すべて Zend_Gdata_App_Exception でキャッチできます。
span style="color: #808080; font-style: italic;">// 例外の内容をユーザに報告します
Zend_Gdata では、以下のような例外サブクラスを使用しています。
-
Zend_Gdata_App_AuthException
は、ユーザのアカウントの情報が無効であることを表します。
-
Zend_Gdata_App_BadMethodCallException
は、そのサービスがサポートしていないメソッドをコールしたことを表します。
たとえば、CodeSearch サービスは post()
をサポートしていません。
-
Zend_Gdata_App_HttpException
は、HTTP リクエストが失敗したことを表します。
Zend_Http_Response オブジェクトの中身を調べることで、
実際の原因がわかります。この場合は
$e->getMessage() の情報だけでは不十分です。
-
Zend_Gdata_App_InvalidArgumentException
は、その状況では無効な値を指定したことを表します。
たとえば、カレンダーの可視性に "banana"
を指定したり、blog の名前を省略して Blogger のフィードを取得したりといった場合です。
-
Zend_Gdata_App_CaptchaRequiredException
は、ClientLogin を試みた際に認証サービスから
CAPTCHA チャレンジを受け取った場合にスローされます。
この例外の中には、トークン ID および
CAPTCHA チャレンジ画像への URL
が含まれています。この画像はパズルのようなもので、
これをユーザに対して表示させる必要があります。
チャレンジ画像に対するユーザからの応答を受け取ったら、
それを用いて再度 ClientLogin を試みることができます。
あるいは、ユーザが直接
https://www.google.com/accounts/DisplayUnlockCaptcha
を使用することもできます。詳細な情報は
ClientLogin のドキュメント
を参照ください。
これらの例外サブクラスを使用すると、より細やかな例外処理を行なえます。
どの Zend_Gdata のメソッドがどんな例外サブクラスをスローするのかについては、
API ドキュメントを参照ください。
span style="color: #808080; font-style: italic;">// ユーザの認証に失敗しました
// もう一度認証を行うなどの処置が適切でしょう
// Google Data のサーバに接続できませんでした