如何知道在python中捕获哪种异常类型?

如何知道在python中捕获哪种异常类型?,python,exception,types,Python,Exception,Types,常规异常捕获程序记录以下异常: > 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", > l

常规异常捕获程序记录以下异常:

> 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
>回溯(最后一次调用):文件“4sq.py”,第37行,在
> 
>checkin=client.checkins()文件“/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/_init__.py”,
>第416行,正在通话__
>返回self.GET({CHECKIN\u ID}.format(CHECKIN\u ID=CHECKIN\u ID),params,multi=multi)文件
>“/usr/local/lib/python2.7/dist packages/foursquare-20120716-py2.7.egg/foursquare/_init__.py”,
>第217行,进站
>返回self.requester.GET(self.u扩展路径,*args,**kwargs)文件“/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/\uuuuuu init\uuuu.py”,
>第163行,进站
>返回self.\u请求(url)文件“/usr/local/lib/python2.7/dist-packages/foursquare-20120716-py2.7.egg/foursquare/\uu init\uuuuuu.py”,
>第200行,输入请求
>返回带有重试(url,数据)['response']文件/usr/local/lib/python2.7/dist packages/foursquare-20120716-py2.7.egg/foursquare/uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
>第696行,输入带有重试的请求
>返回带有httplib2(url,数据)文件“/usr/local/lib/python2.7/dist packages/foursquare-20120716-py2.7.egg/foursquare/uuu init_uuuuuuuu.py”的“进程请求”,
>第719行,使用httplib2处理请求
>返回"检查响应(数据)文件"/usr/local/lib/python2.7/dist packages/foursquare-20120716-py2.7.egg/foursquare/uuuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
>第742行,输入检查响应
>超出raise exc(meta.get('errorDetail'))RATE LIMITSED:超出配额
我想知道具体的异常名称,这样我就可以添加一个专用的捕获。 如何找到它


捕获的异常上是否有“type”函数,或者是否应该在抛出库的源代码中找到它-可用

粘贴中引发的异常是
foursquare.ratelimited
(如最后一行所述)。如果要处理模块中的所有错误,您应该能够正常捕获它,或者捕获它的基类
foursquare.FoursquareException


引发异常的代码只是从字典中查找要引发的异常类。这不应该对你如何发现这些错误有任何影响。

这本来是一个评论,但因为它获得了很多选票,OP声称这就是他们所寻找的,我将它作为一个答案重新发布:

看起来这是个例外。不过,如果你真的想确定,你可以这样做:

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

这将打印出引发的异常类,它将给您一个明确的答案

看起来像是一个
ratelimited
异常。不过,可以肯定的是,我会将它包装在一个
try
/
中,例外情况除外,作为e
并打印
e。那会给你一个明确的答案谢谢你一直在寻找类似e的东西!