gpt4 book ai didi

python - 如何在 Python 中处理 AssertionError 并找出它发生在哪一行或哪条语句上?

转载 作者:IT老高 更新时间:2023-10-28 20:31:48 26 4
gpt4 key购买 nike

我想处理 AssertionError 以向用户隐藏堆栈跟踪的不必要部分,并打印一条消息,说明错误发生的原因以及用户应该如何处理。

有什么方法可以找出 except block 中 assert 在哪一行或哪条语句上失败?

try:
assert True
assert 7 == 7
assert 1 == 2
# many more statements like this
except AssertionError:
print 'Houston, we have a problem.'
print
print 'An error occurred on line ???? in statement ???'
exit(1)

我不想把这个添加到每个断言语句中:

assert 7 == 7, "7 == 7"

因为它重复信息。

最佳答案

使用 traceback模块:

import sys
import traceback

try:
assert True
assert 7 == 7
assert 1 == 2
# many more statements like this
except AssertionError:
_, _, tb = sys.exc_info()
traceback.print_tb(tb) # Fixed format
tb_info = traceback.extract_tb(tb)
filename, line, func, text = tb_info[-1]

print('An error occurred on line {} in statement {}'.format(line, text))
exit(1)

关于python - 如何在 Python 中处理 AssertionError 并找出它发生在哪一行或哪条语句上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11587223/

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