仅使用最后一行堆栈跟踪引发错误

时间:2011-11-29 02:53:46

标签: python exception-handling python-3.x stack-trace

在我看来,通常你可能希望Python程序只打印(通常是标准错误)堆栈跟踪的最后一行,例如:

IOError: Error reading file 'b'plunk'': b'failed to load external entity "plunk"'

我有这个解决方案:

def print_error(ex:Exception, file) -> None:
    print('{0}: {1}'.format(ex.__class__.__name__, ex), file=file)

使用示例:

try:
    crash in some manner
except Exception as ex:
    print_error(ex, sys.stderr)

这没有什么特别的错误,但是这个功能看起来非常基本,我不禁想知道是否有更简单的方法。我错过了什么吗?或者这是一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

我不知道是否有更好的方法,但考虑到它是6行代码,我无法想象它需要很长时间才能执行,我认为你不需要一个更好的。