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

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

如果我输入的字符串少于3个以冒号分隔的元素(即“Hi:SO!”),我将期望得到一个ValueError值;但是我想让它引发一个RuntimeError,并继续执行该程序而不将其暂停。我如何将这个ValueError提升为RuntimeError,同时又将RuntimeError除外?

最佳答案

你可以这样做:

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

这个想法是要检查字符串拆分列表的长度是否等于3,如果是,则引发所需的任何异常,然后在所需的位置进行处理(使用适当的异常处理)。

10-06 11:23