有时一些程序即便语法合规,但在执行过程中也会出现错误,比如下面这个例子
def spam(divideBy):
return 10/divideBy
print(spam(10))
print(spam(20))
print(spam(0))
print(spam(1))
执行结果为
程序在执行到print(spam(0))
时出现错误,因为除数不能为0,并且 后续的内容也未执行
设想如果一个程序比较大,我希望即便出现这种错误后,只需要告诉我有错误出现,但不希望影响后续内容的执行
这时候就可以用到 try
和 except
的函数组合
比如上面的例子,我不确定 spam
是否会出错,可以这样改
def spam(divideBy):
try:
return 10/divideBy
except:
print("Error: Invalid divideBy")
print(spam(10))
print(spam(20))
print(spam(0))
print(spam(1))
只是在子函数中增加了 try、except,同样的调用方式,这次程序在执行过程中,虽然依旧出错,但并没有停下来,只是打印的ERROR信息,并继续执行后续内容
值得注意的是,如果如果try中的内容发生错误,会直接跳到except
def spam(divideBy):
return 10/divideBy
try:
print(spam(10))
print(spam(20))
print(spam(0))
print(spam(1))
except:
rint("Error: Invalid divideBy")
print(spam(0))
后面的内容并没有执行,而是直接跳到except