首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么exc_traceback不返回

为什么exc_traceback不返回
EN

Stack Overflow用户
提问于 2016-07-06 10:46:51
回答 1查看 754关注 0票数 1

信息()返回一个元组(类型、值、回溯)。

所以sys.exc_info()[2]是我们的回溯对象。

为什么它不捕获此代码的异常跟踪:

代码语言:javascript
复制
import sys

try:
    1/0
except ZeroDivisionError:
    print sys.exc_info()[2].tb_frame.f_back

tb_frame和f_back的用法在这里已经解释过了:帧对象

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 11:04:51

您可以看到None,因为没有外部框架。您将直接执行此操作,因此当前框架是最后一个框架。为了演示这一点,我创建了一个demo.py

代码语言:javascript
复制
import sys

try:
    1/0
except ZeroDivisionError:
    print sys.exc_info()[2].tb_frame.f_back

它看起来应该很熟悉,并且是一个简单的caller.py

代码语言:javascript
复制
import demo

现在看一下不同之处:

代码语言:javascript
复制
$ python demo.py
None

$ python caller.py
<frame object at 0x10bc34c20>

在第二种情况下,如果有外部框架(即caller.py),则不会看到None

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38222138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档