Zend_Gdata__App_Exception は、
Zend_Gdata がスローする例外の基底クラスです。
Zedn_Gdata がスローする例外は、すべて Zend_Gdata_App_Exception でキャッチできます。
<?php
try {
$client = Zend_Gdata_ClientLogin::getHttpClient($username, $password);
} catch(Zend_Gdata_App_Exception $ex) {
// 例外の内容をユーザに報告します
die($ex->getMessage());
}
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 のメソッドがどんな例外サブクラスをスローするのかについては、 API ドキュメントを参照ください。
<?php
try {
$client = Zend_Gdata_ClientLogin::getHttpClient($username, $password, $service);
} catch(Zend_Gdata_App_AuthException $authEx) {
// ユーザの認証に失敗しました
// もう一度認証を行うなどの処置が適切でしょう
...
} catch(Zend_Gdata_App_HttpException $httpEx) {
// Google Data のサーバに接続できませんでした
die($httpEx->getMessage);
}