Python自定義異常類別
1. 自定義異常的概念
在Python中,可以通過繼承內置的Exception類來創建自定義異常類別。這樣可以在程序中處理特定的錯誤情況,並提供更具體的錯誤信息。
2. 創建自定義異常類別
# 自定義異常類別
class MyError(Exception):
"""自定義異常類別"""
def __init__(self, message):
super().__init__(message) # 調用父類的初始化方法
3. 使用自定義異常
# 使用自定義異常
def check_value(value):
if value < 0:
raise MyError("錯誤:值不能小於零!")
return value
try:
check_value(-1)
except MyError as e:
print(e) # 輸出自定義異常的錯誤信息
4. 自定義異常的擴展
可以在自定義異常類別中添加更多屬性和方法,以提供更詳細的錯誤信息。
# 擴展自定義異常類別
class ValueTooSmallError(MyError):
"""自定義異常類別:值過小"""
def __init__(self, value, message="錯誤:值過小!"):
self.value = value
super().__init__(message)
try:
raise ValueTooSmallError(5)
except ValueTooSmallError as e:
print(f"{e}: {e.value}") # 輸出錯誤信息和錯誤值
5. 練習題
-
創建一個自定義異常類別,當用戶輸入的數字超過100時引發該異常。
-
編寫一個函數,檢查用戶輸入的年齡是否合理(例如,年齡必須在0到120之間),並使用自定義異常進行處理。
6. 常見錯誤和注意事項
- 確保自定義異常類別繼承自Exception類。
- 在引發異常時,提供有意義的錯誤信息。
- 避免過度使用自定義異常,應根據實際需求進行設計。
7. 最佳實踐
- 使用自定義異常來處理特定的業務邏輯錯誤。
- 在異常類別中添加有用的屬性,以便在捕獲異常時提供更多上下文信息。
- 保持異常類別的簡潔性,避免不必要的複雜性。