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); } ?>