How to get the last exception object after an error is raised at a Python prompt?
在交互式提示符(REPL)上调试Python代码时,我经常会编写一些引发异常的代码,但是我没有把它包装在
通常Python打印出来的追溯和错误消息是不够的。 例如,在获取URL时,服务器可能会返回40x错误,您需要通过
1 2 3 4 5 6 | >>> import urllib2 >>> f = urllib2.urlopen('http://example.com/api/?foo=bad-query-string') Traceback (most recent call last): File"<stdin>", line 1, in <module> ... urllib2.HTTPError: HTTP Error 400: Bad Request |
Drat,回应的主体说了什么? 它可能包含有价值的错误信息......
我意识到重新运行包含在try / except中的代码通常很容易,但这并不理想。 我也意识到在这种特殊情况下,如果我使用的是
正如@Cairnarvon所提到的,我没有发现任何
所以
1 2 3 4 5 6 | import sys list = [1,2,3,4] try: del list[8] except Exception: print(sys.exc_info()[1]) |
将输出
此外,来自
如果使用
1 2 3 | Traceback (most recent call last): File"python", line 6, in <module> IndexError: list assignment index out of range |