在Python中,可以使用try-except
語(yǔ)句來(lái)處理異常。當(dāng)你預(yù)計(jì)某個(gè)代碼塊可能會(huì)引發(fā)異常時(shí),可以將其放在try
塊中。如果try
塊中的代碼引發(fā)了異常,程序?qū)⒘⒓刺D(zhuǎn)到相應(yīng)的except
塊。
以下是一個(gè)簡(jiǎn)單的示例:
def divide(a, b):
try:
result = a / b
except ZeroDivisionError:
print("除數(shù)不能為0")
return None
except Exception as e:
print(f"發(fā)生了未知錯(cuò)誤: {e}")
return None
else:
return result
finally:
print("計(jì)算完成")
num1 = 10
num2 = 0
result = divide(num1, num2)
if result is not None:
print(f"{num1} / {num2} = {result}")
在這個(gè)示例中,我們定義了一個(gè)名為divide
的函數(shù),它接受兩個(gè)參數(shù)a
和b
,并嘗試計(jì)算它們的商。我們將除法操作放在try
塊中,然后捕獲兩種類型的異常:ZeroDivisionError
(當(dāng)除數(shù)為0時(shí)引發(fā))和Exception
(捕獲所有其他異常)。
如果發(fā)生異常,我們會(huì)在except
塊中打印一條錯(cuò)誤消息,并返回None
。如果沒(méi)有發(fā)生異常,else
子句將返回計(jì)算結(jié)果。無(wú)論是否發(fā)生異常,finally
子句都會(huì)在最后執(zhí)行,用于執(zhí)行清理操作或釋放資源。
注意:在實(shí)際編程中,通常建議盡量避免捕獲所有異常(except Exception
),因?yàn)檫@可能會(huì)隱藏潛在的問(wèn)題。最好是僅捕獲你預(yù)期可能發(fā)生的特定異常。