Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 发生错误时,如何引发不同类型的错误?_Python_Python 3.x_Error Handling_Exception Handling - Fatal编程技术网

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

Python 发生错误时,如何引发不同类型的错误?,python,python-3.x,error-handling,exception-handling,Python,Python 3.x,Error Handling,Exception Handling,我想知道当我知道代码中将出现ValueError时,我将如何设置一种引发运行时错误的方法。例如: def example(string): try: var1, var2, var3 = string.split(":") except ValueError: raise RuntimeError 如果我输入的字符串少于3个以冒号分隔的元素(即“Hi:SO!”),我将得到一个ValueError;然而,我想让它引发一个运行时错误,并继续运行程序,而不

我想知道当我知道代码中将出现ValueError时,我将如何设置一种引发运行时错误的方法。例如:

def example(string):
    try:
       var1, var2, var3 = string.split(":")
    except ValueError:
       raise RuntimeError
如果我输入的字符串少于3个以冒号分隔的元素(即“Hi:SO!”),我将得到一个ValueError;然而,我想让它引发一个运行时错误,并继续运行程序,而不使其停止。如何将此ValueError提升为RuntimeError,同时仍将RuntimeError排除在外?

您可以这样做:

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

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

这确实会引发运行时错误(在缩进赋值并将名称
var 3
修复为
var3
之后)。真正的问题是,为什么要提出具体的例外情况?异常有一个目的:通知用户为什么发生了不好的事情。你似乎做得对!如果你真的想“捕捉”一个运行时错误,请再试一次!谢谢,我尝试了第二种方法,效果非常好!如果要在捕获异常后继续执行程序,可以使用警告!