2

在 Python 中,如果不满足一组ifand条件,则到达并执行该语句。elifelse

开发人员应如何通知不应到达代码中的这一点,并引发哪种异常类型?

例子:

if condition1:
    # do something
elif condition2:
    # do something
else:
    raise ShouldVeNeverGotHereException

这是为了确保至少上述if条件之一实际评估为True。如果有更优雅的模式来实现我所描述的,请提出建议。

4

2 回答 2

7

您永远不应该编写可能导致结果松散的代码。但是假设你必须,可能最好的 Exception 类型是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
于 2013-07-25T13:08:26.157 回答
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
于 2013-07-25T13:05:09.073 回答