如何在发生错误时引发不同类型的错误?
问题描述:
我想知道如何设置一种方法来提高RuntimeError当我知道ValueError将出现在我的代码中。例如:如何在发生错误时引发不同类型的错误?
def example(string):
try:
var1, var2, var3 = string.split(":")
except ValueError:
raise RuntimeError
如果我输入少于3个元素的字符用冒号分隔(即“嗨!SO”),我会希望得到一个ValueError;不过,我希望这会引发RuntimeError,并继续执行该程序,而不会使其停止。我会如何将这个ValueError作为RuntimeError提升,同时还会排除RuntimeError?
答
你可以这样做:
vars = string.split(":")
if not len(vars) == 3:
raise RuntimeError("your message")
else:
var1, var2, var3 = vars
这样做是为了检查是否字符串分割列表长度等于3,如果是你养你想要的任何例外,你处理它,你以后要(通过适当的异常处理)。
这个*会引发一个RuntimeError(在您将该赋值缩进并将'var 3'名称修改为'var3'后)。真正的问题是*为什么要提出特定的异常?例外情况有一个purprose:通知用户为什么发生了不好的事情。 –
你似乎做得对!只需使用另一个尝试,如果你真的想要“赶上”运行时错误! – aliqandil
谢谢,我尝试了第二次尝试的方法,它完美地工作! –