首页 > 解决方案 > 有一个“这永远不会发生”的声明是一种好习惯吗

问题描述

在 python 中(和一般的编码,真的)是一个好习惯,有一个永远不应该发生的错误,还是只是代码混乱?

例如

if thing:
   num = 1
elif thing2:
   num = 2
else:
   num = 3

#Lots of other code goes here interacting with num, but not modifying it

if num == 1:
   option1()
elif num == 2:
   option2()
elif num == 3:
   option3()
else:
   #this should never happen
   print("Instead of being 1, 2, or 3, num was " + str(num))
   raise Exception("Error! num was an unexpected value!")

所以基本上,是包括最后的 else (这永远不会发生)是好的做法,还是只是把代码弄得乱七八糟?

我的真实代码比这更复杂 - 具体来说, num 在主循环中分配,然后传递给函数。也许值得包括,因为该函数可能是从其他地方调用的,而 num 的值不正确?

标签: python

解决方案


处理默认条件通常被认为是一种好的做法,即使在当前代码中无法访问。这样做的原因是代码会随着时间的推移而增长和转移所有权,而目前看来无法达到的情况很可能在未来发生。在这种情况下,最好像您一样引发异常,而不是具有未指定的行为。


推荐阅读