发生错误时如何引发不同类型的错误?

时间:2017-05-04 11:22:36

标签: python python-3.x error-handling exception-handling

当我知道在我的代码中会出现 ValueError 时,我想知道如何设置一种方法来引发 RuntimeError 。例如:

def example(string):
    try:
       var1, var2, var3 = string.split(":")
    except ValueError:
       raise RuntimeError

如果我输入的字符串少于3个由冒号分隔的元素(即"嗨:SO!")我会得到一个ValueError;但是我希望这会引发一个RuntimeError而继续使用该程序,而不会将其停止。除了RuntimeError之外,我如何将此ValueError作为RuntimeError引发?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

vars = string.split(":")
if not len(vars) == 3:
    raise RuntimeError("your message")
else:
    var1, var2, var3 = vars

我们的想法是检查字符串拆分列表长度是否等于3,如果是,则提出您想要的任何异常,并在此之后处理它(使用适当的异常处理)。