Python try-except異常處理
1. 異常處理的基本概念
在Python中,異常是運行時錯誤的具體表現。使用try-except語句可以捕獲和處理這些異常,從而避免程序崩潰。
2. 基本用法
# 使用try-except捕獲異常
try:
result = 10 / 0 # 這裡會引發ZeroDivisionError
except ZeroDivisionError:
print("錯誤:不能除以零!")
3. 捕獲多種異常
# 捕獲多種異常
try:
value = int(input("請輸入一個整數:"))
result = 10 / value
except ValueError:
print("錯誤:請輸入有效的整數!")
except ZeroDivisionError:
print("錯誤:不能除以零!")
4. 使用finally語句
finally語句無論是否發生異常都會執行,通常用於釋放資源。
# 使用finally語句
try:
file = open('example.txt', 'r')
# 進行文件操作
except FileNotFoundError:
print("錯誤:文件未找到!")
finally:
file.close() # 確保文件被關閉
5. 自定義異常
可以通過繼承Exception類來創建自定義異常。
# 自定義異常類別
class MyError(Exception):
pass
try:
raise MyError("這是一個自定義異常")
except MyError as e:
print(e)
6. 練習題
-
編寫一個程序,要求用戶輸入一個數字,並計算其平方根,處理可能的異常。
-
創建一個自定義異常,當用戶輸入的數字小於0時引發該異常。
7. 常見錯誤和解決方案
- ZeroDivisionError:當嘗試除以零時引發。解決方案:檢查除數是否為零。
- ValueError:當函數接收到的參數類型不正確時引發。解決方案:檢查輸入的數據類型。
8. 最佳實踐
- 盡量具體捕獲異常,而不是使用通用的except。
- 在異常處理中提供有意義的錯誤信息。
- 使用finally語句釋放資源。