python - 有一个“这永远不会发生”的声明是一种好习惯吗
问题描述
在 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 的值不正确?
解决方案
处理默认条件通常被认为是一种好的做法,即使在当前代码中无法访问。这样做的原因是代码会随着时间的推移而增长和转移所有权,而目前看来无法达到的情况很可能在未来发生。在这种情况下,最好像您一样引发异常,而不是具有未指定的行为。
推荐阅读
- javascript - React App - TypeError:无法添加属性 setState,对象不可扩展
- python - TensorFlow 安装问题 Mac
- crystal-reports - 我无法获得水晶报表 if/then/else 公式来提取正确的数据
- java - ArrayList 复制数据的问题
- python - 如何将一个按钮的属性转移到另一个按钮?(本例中的文本,python,tkinter)
- android - 您如何为 Google Play 商店创建一个 android 图标包?
- microsoft-graph-api - Microsoft Graph 无法选择 /groups 的展开语句
- spring - 施放延迟结果弹簧时的空响应
- css - 在闪亮的一些文本旁边的数据表中插入图像
- .net - 如何找到两个数据表之间的差异