Python 控制是否显示 报错信息 异常回溯 traceback

通过 Traceback 能得知运行异常的位置、原因

  • 当程序没有捕获异常、运行异常时
  • 会自动调用 Traceback 进行异常回溯



捕获异常

  • 当程序捕获异常时
  • 不会自动调用 Traceback 进行异常回溯
def run():
    try:
        print('Before')
        print(1 / 0)
        print('After')
    except Exception as e:
        print('异常信息', e)
    finally:
        print('End')


if __name__ == '__main__':
    run()



traceback.print_exc()

  • 将异常回溯的信息打印出来
import traceback


def run(trace=False):
    """
    :param trace: 控制是否进行 异常回溯
    :return:
    """
    
    try:
        print('Before')
        print(1 / 0)
        print('After')
    except:
        if trace:
            traceback.print_exc()
    finally:
        print('End')


if __name__ == '__main__':
    run(trace=True)



traceback.format_exc()

  • Like print_exc() but return a string
  • 将异常回溯的信息以字符串形式返回
import traceback


def run(trace=False):
    """
    :param trace: 控制是否进行 异常回溯
    :return:
    """

    try:
        print('Before')
        print(1 / 0)
        print('After')
    except:
        if trace:
            # 可以对回溯信息进行日志保存、筛选等操作
            e_str = traceback.format_exc()
            print(e_str)
    finally:
        print('End')


if __name__ == '__main__':
    run(trace=True)
posted @ 2022-03-29 03:05  三个零  阅读(325)  评论(0编辑  收藏  举报