gpt4 book ai didi

python - 异常处理总是很昂贵吗?

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

我一再被告知,对诸如确定类型之类的操作进行异常处理是一种糟糕的形式,因为异常总是在计算上很昂贵。尽管如此,我还是看到一些帖子(尤其是与 Python 相关的帖子,例如 this one 的回复)建议为此目的使用异常处理。

那么我在想,是否要普遍避免抛出和捕获异常,因为它总是计算量大,或者某些语言​​(例如 Python)是否可以更好地处理异常并且允许更自由地使用异常处理。

最佳答案

您不能为所有编程语言提供一般性建议,例如“异常代价高昂因此应该避免”。

如您所料,在 Python 中,异常的使用比在其他语言(如 C++)中更为自由。 Python 强调的不是原始性能,而是代码的可读性。有一句成语“请求原谅比请求许可更容易”,意思是:尝试你想要实现的目标并捕获异常比先检查兼容性更容易。

宽恕:

try:
do_something_with(dict["key"])
except (KeyError, TypeError):
# Oh well, there is no "key" in dict, or it has the wrong type

权限:

if hasattr(dict, "__getitem__") and "key" in dict:
do_something_with(dict["key"])
else:
# Oh well

实际上,在 Python 中,使用 for 循环的迭代是在引擎盖下使用异常实现的:当到达末尾时,可迭代对象引发一个 StopIteration 异常。因此,即使您试图避免异常,您仍然会一直使用它们。

关于python - 异常处理总是很昂贵吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21642839/

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