gpt4 book ai didi

python - 在测试期间从 sys.exit() 捕获错误消息

转载 作者:行者123 更新时间:2023-11-28 16:42:39 24 4
gpt4 key购买 nike

有没有一种方法可以“捕获”测试期间 sys.exit() 打印出的错误消息并将其与另一个字符串进行比较?

一些背景:在我正在处理的 Python 脚本中,我一直在使用 sys.exit() 打印出更具体的错误消息(并避免通常出现的回溯) .

try:
do_something()
except IOError:
sys.exit('my error message')

其他时候,我只使用常规消息(尤其是使用 ConfigParser):

except ConfigParser.NoSectionError as err:
sys.exit(err)

我想在那里捕获错误消息,并可能使用 assertIs(err, 'my intended error message') 进行比较。

我正在处理的脚本同时具有 Python 2 和 3 版本,因此如果它们在执行此操作时存在差异,我将不胜感激。

最佳答案

sys.exit在引发 SystemExit 之后不执行任何其他操作,您可以像捕获任何其他异常一样捕获它。

关于上下文管理器的示例只是向您展示了如果您需要对其执行检查,如何使用它来获取在 with block 中抛出的异常。

在 SystemExit 的情况下,它看起来像这样:

with self.assertRaises(SystemExit) as cm:
sys.exit('some message')

self.assertEqual(cm.exception.args[0], 'some message')
...

关于python - 在测试期间从 sys.exit() 捕获错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276833/

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