gpt4 book ai didi

python - 从异常中获取好的字符串的正确方法

转载 作者:太空狗 更新时间:2023-10-30 01:14:25 25 4
gpt4 key购买 nike

我想从 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))

这给了我:

foo.py:203: AttributeError in foo(): "'module' object has no attribute 'nonexisting'"

是否有更优雅的方式打印出本例中给出的详细信息?我在想某事喜欢

print(e.format('%f: %l: %t %F: "%w"'))

我想避免导入额外的模块,除非有一个专门用于此目的。

最佳答案

我认为traceback.format_exception_only完全按照您的意愿行事。

try:
os.nonexisting()
except Exception as e:
print(traceback.format_exception_only(e.__class__, e))

关于python - 从异常中获取好的字符串的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com