12.9. Gdata の例外の捕捉
前のページ | 第12章 Zend_Gdata | 次のページ

## 12.9. Gdata の例外の捕捉

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

前のページ | 上に戻る | 次のページ
12.8. Gdata Data Helper の使用法 | ホーム | 第13章 Zend_Http