Zend Framework の紹介

 Learning Zend Framework

appendix

 Zend Framework リファレンス


  • 第36章 Zend_Gdata
  • 第37章 Zend_Http
  • 第38章 Zend_InfoCard
  • 第39章 Zend_Json
  • 第40章 Zend_Layout
  • 第41章 Zend_Ldap
  • 第42章 Zend_Loader
  • 第43章 Zend_Locale
  • 第44章 Zend_Log
  • 第45章 Zend_Mail
  • 第46章 Zend_Markup
  • 第47章 Zend_Measure
  • 第48章 Zend_Memory
  • 第49章 Zend_Mime
  • 第50章 Zend_Navigation
  • 第51章 Zend_Oauth
  • 第52章 Zend_OpenId
  • 第53章 Zend_Paginator
  • 第54章 Zend_Pdf
  • 第55章 Zend_ProgressBar
  • 第56章 Zend_Queue
  • 第57章 Zend_Reflection
  • 第58章 Zend_Registry
  • 第59章 Zend_Rest

  • 第60章 Zend_Search_Lucene
  • 第61章 Zend_Serializer
  • 第62章 Zend_Server
  • 第63章 Zend_Service
  • 第64章 Zend_Session
  • 第65章 Zend_Soap
  • 第66章 Zend_Tag
  • 第67章 Zend_Test
  • 第68章 Zend_Text
  • 第69章 Zend_TimeSync
  • 第70章 Zend_Tool
  • 第71章 Zend_Tool_Framework
  • 第72章 Zend_Tool_Project
  • 第73章 Zend_Translate
  • 第74章 Zend_Uri
  • 第75章 Zend_Validate
  • 第76章 Zend_Version
  • 第77章 Zend_View
  • 第78章 Zend_Wildfire
  • 第79章 Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 70.6% Update 2010-11-28 - Revision 23415

    36.13. Gdata の例外処理

    Zend_Gdata_App_Exception は、 Zend_Gdata がスローする例外の基底クラスです。 Zedn_Gdata がスローする例外は、すべて Zend_Gdata_App_Exception でキャッチできます。

    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_App_CaptchaRequiredException は、ClientLogin を試みた際に認証サービスから CAPTCHA™ チャレンジを受け取った場合にスローされます。 この例外の中には、トークン ID および CAPTCHA™ チャレンジ画像への URL が含まれています。この画像はパズルのようなもので、 これをユーザに対して表示させる必要があります。 チャレンジ画像に対するユーザからの応答を受け取ったら、 それを用いて再度 ClientLogin を試みることができます。 あるいは、ユーザが直接 https://www.google.com/accounts/DisplayUnlockCaptcha を使用することもできます。詳細な情報は ClientLogin のドキュメント を参照ください。

    これらの例外サブクラスを使用すると、より細やかな例外処理を行なえます。 どの Zend_Gdata のメソッドがどんな例外サブクラスをスローするのかについては、 API ドキュメントを参照ください。

    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);}
    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...