有時一些程序即便語法合規(guī),但在執(zhí)行過程中也會出現(xiàn)錯誤,比如下面這個例子
def spam(divideBy):
return 10/divideBy
print(spam(10))
print(spam(20))
print(spam(0))
print(spam(1))
執(zhí)行結(jié)果為

程序在執(zhí)行到print(spam(0))時出現(xiàn)錯誤,因為除數(shù)不能為0,并且 后續(xù)的內(nèi)容也未執(zhí)行
設(shè)想如果一個程序比較大,我希望即便出現(xiàn)這種錯誤后,只需要告訴我有錯誤出現(xiàn),但不希望影響后續(xù)內(nèi)容的執(zhí)行
這時候就可以用到 try和 except的函數(shù)組合
比如上面的例子,我不確定 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))

只是在子函數(shù)中增加了 try、except,同樣的調(diào)用方式,這次程序在執(zhí)行過程中,雖然依舊出錯,但并沒有停下來,只是打印的ERROR信息,并繼續(xù)執(zhí)行后續(xù)內(nèi)容
值得注意的是,如果如果try中的內(nèi)容發(fā)生錯誤,會直接跳到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))后面的內(nèi)容并沒有執(zhí)行,而是直接跳到except