簡體   English   中英

為什么exc_traceback返回None

[英]Why exc_traceback returns None

sys.exc_info()返回一個元組(類型,值,回溯)。
因此sys.exc_info()[2]是我們的回溯對象。

為什么它不使用以下代碼捕獲異常回溯:

import sys

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

tb_frame和f_back用法已在此處說明: 框架對象

您會看到“ None因為沒有外部框架 您直接執行此操作,因此當前幀是最后一幀。 為了演示這一點,我創建了一個demo.py

import sys

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

應該看起來很熟悉,還有一個瑣碎的caller.py

import demo

現在看到區別:

$ python demo.py
None

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

在第二種情況下,如果有一個外部框架(即caller.py ),則看不到None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM