Zend_Gdata_Exception は、Zend_Gdata
がスローする例外の基底クラスです。Zend_Gdata_Exception
を捕捉すれば、Zend_Gdata がスローする例外をすべて処理できます。
<?php
try {
$client = Zend_Gdata_ClientLogin::getHttpClient($username, $password);
} catch(Zend_Gdata_Exception $ex) {
// ユーザに例外の内容を報告します
die($ex->getMessage());
}
?>
Zend_Gdata では、次のようなサブクラスを使用しています。
Zend_Gdata_AuthException
は、ユーザアカウントの認証情報が無効であることを表します。
Zend_Gdata_BadMethodCallException
は、そのサービスがサポートしていないメソッドがコールされたことを表します。
たとえば、CodeSearch サービスは post()
をサポートしていません。
Zend_Gdata_HttpException
は、HTTP リクエストに失敗したことを表します。
Zend_Gdata_InvalidArgumentException
は、アプリケーションで設定した値が、その状況は無効であることを表します。
たとえば、Calendar の visibility に "banana" を指定したり、blog の名前を指定せずに
Blogger のフィードを取得しようとしたりといった場合があてはまります。
これらのサブクラスを使用することで、それぞれの例外に固有の処理をすることができます。 これらの例外サブクラスが、それぞれ Zend_Gdata のどのメソッドからスローされるのかについては API ドキュメントを参照ください。
<?php
try {
$client = Zend_Gdata_ClientLogin::getHttpClient($username, $password);
} catch(Zend_Gdata_AuthException $authEx) {
// ユーザの認証情報が無効なので、
// もう一度認証をさせるなどの処理が適当でしょう
...
} catch(Zend_Gdata_HttpException $httpEx) {
// Google Data サーバに接続できません
die($httpEx->getMessage);
}
?>