目錄
try-except塊
例子:
輸出:
捕獲多種異常
例子:
else和finally
例子:
輸出:
自定義異常
例子:
輸出:
好的,簡單來說,錯誤和異常處理是編程中用來處理程序運行時可能出現的意外情況的機制。比如,程序可能因為除以零、找不到文件或者用戶輸入了錯誤的內容而“出錯”。為了避免程序直接崩潰,我們可以用try-except
來“捕獲”這些意外情況,并告訴程序該怎么處理。
try-except
塊
try
:把可能會出錯的代碼放在這里。except
:如果try
里的代碼出錯了,就執行這里的代碼。
例子:
try:result = 10 / 0 # 這里可能會出錯,因為除數是0
except ZeroDivisionError: # 捕獲除以零的錯誤print("出錯了!不能除以零。")
輸出:
出錯了!不能除以零。
捕獲多種異常
如果代碼可能會出現多種錯誤,可以用多個except
塊來分別處理。
例子:
try:num = int(input("請輸入一個數字:")) # 用戶輸入可能出錯result = 10 / num # 除法可能出錯
except ValueError: # 捕獲用戶輸入不是數字的情況print("請輸入一個有效的數字!")
except ZeroDivisionError: # 捕獲除以零的情況print("不能除以零!")
else
和finally
else
:如果沒有出錯,會執行else
塊。finally
:不管有沒有出錯,finally
塊都會執行,通常用來清理資源。
例子:
try:result = 10 / 2
except ZeroDivisionError:print("不能除以零!")
else:print("計算成功,結果是:", result)
finally:print("不管怎樣,我都會執行。")
輸出:
計算成功,結果是: 5.0
不管怎樣,我都會執行。
自定義異常
你可以自己定義異常,讓程序更清晰。
例子:
class MyError(Exception): # 自定義一個異常passtry:raise MyError("這是我自己定義的錯誤!") # 主動觸發異常
except MyError as e:print(e)
輸出:
這是我自己定義的錯誤!