常見錯誤:SyntaxError(語法)、NameError(未定義變數)、TypeError(型態錯誤)、IndexError(索引超出)、KeyError(key 不存在)
🔍 錯誤訊息三要素:錯誤類型 + 錯誤描述 + 行號
常見錯誤:SyntaxError(語法)、NameError(未定義變數)、TypeError(型態錯誤)、IndexError(索引超出)、KeyError(key 不存在)
try:
age = int(input("請輸入年齡: "))
print(f"你明年 {age + 1} 歲")
except ValueError:
print("⚠️ 請輸入數字!")
try:
num = int(input("輸入數字: "))
result = 100 / num
except ValueError:
print("請輸入數字!")
except ZeroDivisionError:
print("不能除以 0!")
finally:
print("清理資源...") # 無論如何都執行def divide(a, b):
if b == 0:
raise ValueError("除數不能為 0!")
return a / b
# logging:專業的記錄方式
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s [%(levelname)s] %(message)s',
handlers=[logging.FileHandler('app.log', encoding='utf-8'),
logging.StreamHandler()]
)
logging.info("程式啟動")
logging.error("錯誤發生!")
def safe_calculator():
while True:
expr = input("輸入算式(或 q 離開): ")
if expr.lower() == 'q': break
try:
result = eval(expr)
print(f"✅ 結果:{result}")
except ZeroDivisionError:
print("❌ 不能除以 0!")
except (SyntaxError, NameError) as e:
print(f"❌ 算式有誤:{e}")
except Exception as e:
print(f"❌ 未知錯誤:{e}")認識錯誤→ try/except→ raise→ logging→ 安全計算機
優秀的程式能承受混亂的現實世界——使用者亂打、檔案不見、網路斷線,都能從容應對。