pyrate.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:pyrate-build 作者: pyrate-build 项目源码 文件源码
def format_exception(bfn, ex):
    import traceback, linecache
    exinfo = traceback.format_exception_only(ex.__class__, ex)
    if ex.__class__ == SyntaxError:
        exinfo = exinfo[1:]
        lineno = ex.lineno
        content = ''
        sys.stderr.write('Error while processing %s:%s\n\t%s\n' % (os.path.abspath(bfn), lineno, content.strip()))
    else:
        exec_line = None
        exloc = traceback.extract_tb(sys.exc_info()[2])
        for idx, entry in enumerate(exloc):
            if entry[3] is None:
                exec_line = idx
        if exec_line is not None:
            exloc = [(bfn, exloc[exec_line][1], '', linecache.getline(bfn, exloc[exec_line][1]))] + exloc[exec_line:]
        sys.stderr.write('Error while processing %s\n' % os.path.abspath(bfn))
        sys.stderr.write(str.join('', traceback.format_list(exloc)))
    sys.stderr.write(str.join('', exinfo))
    sys.exit(1)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号