Python,尝试除外,打印错误行#

时间:2015-02-25 19:40:49

标签: python try-except

我希望当出现错误时会显示错误发生在哪一行。我不确定如何获得错误发生的行#。任何帮助将不胜感激。

def main():
    while True:
       try:
           function1()
           function2()
           function3()
       except:
           print('error occur at line ' + str(errorline))

1 个答案:

答案 0 :(得分:3)

使用traceback.extract_tb

import sys
import traceback
try:
    # Your code
except:
    tb = sys.exc_info()[-1]
    print(traceback.extract_tb(tb, limit=1)[-1][1])

为了提高效率,我添加了limit=1,以避免加载(可能)巨大的回溯。您无法避免索引列表([-1]以获取最后一个元素)。