5

一般的な例外キャッチャーは、次の例外をログに記録します。

> Traceback (most recent call last):   File "4sq.py", line 37, in
> <module>
>     checkin = client.checkins()   File "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 416, in __call__
>     return self.GET('{CHECKIN_ID}'.format(CHECKIN_ID=CHECKIN_ID), params, multi=multi)   File
> "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 217, in GET
>     return self.requester.GET(self._expanded_path(path), *args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 163, in GET
>     return self._request(url)   File "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 200, in _request
>     return _request_with_retry(url, data)['response']   File "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 696, in _request_with_retry
>     return _process_request_with_httplib2(url, data)   File "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 719, in _process_request_with_httplib2
>     return _check_response(data)   File "/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/__init__.py",
> line 742, in _check_response
>     raise exc(meta.get('errorDetail')) RateLimitExceeded: Quota exceeded

専用のキャッチを追加できるように、特定の例外名を知りたいです。どのように見つけることができますか?

キャッチされた例外に「タイプ」機能がありますか、それともスローするライブラリのソースにあるはずですか -ここで入手可能

4

2 に答える 2

4

これはもともとコメントでしたが、多くの賛成票が集まり、OPが探していたものだと主張しているため、回答として再投稿します。

RateLimitExceeded 例外のようです。ただし、本当に確認したい場合は、次のようにすることができます。

try:
    # code
except Exception as e:
    print e.__class__

これにより、発生した例外クラスが出力され、決定的な答えが得られます

于 2012-11-07T17:32:37.997 に答える
2

貼り付けで発生する例外はfoursquare.RateLimitExceeded(最終行にあるように)です。foursquare.FoursquareExceptionモジュールからのすべてのエラーを処理したい場合は、通常どおりキャッチするか、その基本クラスをキャッチできるはずです。

例外を発生させるコードは、発生させる例外クラスを辞書から検索するだけです。これらのエラーをキャッチする方法には何の影響もありません。

于 2012-11-07T09:40:20.820 に答える