在Python中,如果不满足一组if
和elif
条件,则会到达并执行else
语句。
开发人员如何通知代码中的这一点不应该如何,并提出哪种异常类型?
示例:
if condition1:
# do something
elif condition2:
# do something
else:
raise ShouldVeNeverGotHereException
这是为了确保上述if
条件中至少有一个实际评估为True
。如果有一个更优雅的模式来实现我所描述的,请建议。
答案 0 :(得分:7)
你永远不应该编写可能导致松散结束的代码。但假设您必须,可能提出的最佳类型的异常是ValueError
。
>>> foo = 3
>>> if foo == 1:
pass
elif foo == 2:
pass
else:
raise ValueError('foo is unexpected value: %s' % foo)
Traceback (most recent call last):
File "<pyshell#41>", line 6, in <module>
raise ValueError('foo is unexpected value: %s' % foo)
ValueError: foo is unexpected value: 3
答案 1 :(得分:1)
您可以使用assert
:
if condition1:
do_stuff()
elif condition2:
do_stuff()
else:
assert condition1 and condition2, "condition1 and condition2 is False. Do not continue" # Or something similar