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

问题描述:

我想知道如何设置一种方法来提高RuntimeError当我知道ValueError将出现在我的代码中。例如:如何在发生错误时引发不同类型的错误?

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

如果我输入少于3个元素的字符用冒号分隔(即“嗨!SO”),我会希望得到一个ValueError;不过,我希望这会引发RuntimeError,并继续执行该程序,而不会使其停止。我会如何将这个ValueError作为RuntimeError提升,同时还会排除RuntimeError?

+1

这个*会引发一个RuntimeError(在您将该赋值缩进并将'var 3'名称修改为'var3'后)。真正的问题是*为什么要提出特定的异常?例外情况有一个purprose:通知用户为什么发生了不好的事情。 –

+0

你似乎做得对!只需使用另一个尝试,如果你真的想要“赶上”运行时错误! – aliqandil

+0

谢谢,我尝试了第二次尝试的方法,它完美地工作! –

你可以这样做:

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

这样做是为了检查是否字符串分割列表长度等于3,如果是你养你想要的任何例外,你处理它,你以后要(通过适当的异常处理)。