fra*_*ans 5 python formatting exception python-3.x
我要生成从一个行字符串Exception,它告诉我什么事,其中(并不需要一个完整的回溯).以下信息会很好:
str(e))目前我做以下事情:
import os
...
try:
os.nonexisting()
except Exception as e:
t = e.__traceback__
tbf = e.__traceback__.tb_frame
print('%s:%d: %s in %s(): "%s" ' %
os.path.basename(tbf.f_code.co_filename),
t.tb_lineno,
e.__class__.__name__,
tbf.f_code.co_name, e))
Run Code Online (Sandbox Code Playgroud)
这给了我:
foo.py:203: AttributeError in foo(): "'module' object has no attribute 'nonexisting'"
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式来打印出此示例中给出的详细信息?我正在考虑s.th. 喜欢
print(e.format('%f: %l: %t %F: "%w"'))
Run Code Online (Sandbox Code Playgroud)
我想避免导入额外的模块,除非有一个完全用于此目的.
我认为traceback.format_exception_only正是你想要的。
try:
os.nonexisting()
except Exception as e:
print(traceback.format_exception_only(e.__class__, e))
Run Code Online (Sandbox Code Playgroud)