Python, try except, 打印错误行 #

Python, try except, print error line #

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

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

使用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] 以获取最后一个元素)。