python 当Exception发生时,使用traceback模块获取更多的stackinfo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 当Exception发生时,使用traceback模块获取更多的stackinfo相关的知识,希望对你有一定的参考价值。

# coding:UTF-8

import sys
import traceback

def a():
    print("a")
    b()

def b():
    print("b")
    try:
        c()
    except Exception as e:
        print("="*90)
        traceback.print_exc() # 1
        print("="*90)
        sys.stderr.write(traceback.format_exc()) # 2
        sys.stderr.flush()
        print("="*90)
        type, val, tb = sys.exc_info() # 3
        print(type)
        print(val)
        for filename, linenum, funcname, source in traceback.extract_tb(tb):
            print(filename, linenum, funcname, source)


def c():
    print("c")
    raise IndexError("some error")

def main():
    a()

if __name__ == "__main__":
    main()

以上是关于python 当Exception发生时,使用traceback模块获取更多的stackinfo的主要内容,如果未能解决你的问题,请参考以下文章

python Unicode值和相应名称的排序字典。当UnicodeDecodeErrors发生时,用于向用户提供提示。

Pyads 读取通知值:当 TwinCat 循环发生时

python try_except_else_finally例子,如果没有错误发生,可以在除语句块后面加一个其他,当没有错误发生时,会自动执行其他语句:

异常处理

exception

异常相关数据结构