程式,遇到問題不應該直接掛掉,而是要能優雅地處理。
try:放可能出錯的程式
except:捕捉到錯誤時,執行替代方案
捕捉多種錯誤
try:
f = open("not_exist.txt", "r") # 檔案不存在
data = int("hello") # 無法轉成數字
except FileNotFoundError:
print("檔案不存在!")
except ValueError:
print("格式錯誤,無法轉換數字!")
finally:無論如何都要做的事
try:
f = open("data.txt", "r")
content = f.read()
except FileNotFoundError:
print("檔案不存在!")
finally:
print("程式結束,感謝使用。")
finally 通常用來清理資源,例如關閉檔案、斷開連線。
else:當沒發生錯誤時執行
try:
number = int(input("請輸入數字:"))
except ValueError:
print("輸入錯誤!")
else:
print("太棒了,正確輸入:", number)
真實案例:計算機
try:
x = int(input("輸入第一個數字:"))
y = int(input("輸入第二個數字:"))
result = x / y
except ValueError:
print("輸入錯誤,請輸入數字!")
except ZeroDivisionError:
print("除數不能是 0!")
else:
print("結果是:", result)
finally:
print("感謝使用小計算機。")
程式開發不可能一路順風,有時候會遇到意料之外的情況,例如:
想讀取的檔案不存在、使用者輸入錯誤格式的數字、網路連線突然斷掉
如果程式沒有做好防護,就會直接崩潰。
這就是為什麼我們需要例外處理。
學會了例外處理,讓程式能應對突發狀況而不會輕易崩潰。
明天,我們將學習模組與套件(Modules & Packages),學會如何把程式碼組織起來,像拼積木一樣打造更大的專案!