當我們試圖用數字除以 0 時程式會報錯,這是因為數學上除以 0 是沒有意義的。這在處理大量數據時很常見,尤其是在機器學習模型訓練時,數據處理會出現不預期的「零」值。
這個例題中使用 try
和 except
來捕捉錯誤。
try
區塊中進行除法運算。except
區塊中處理錯誤,能避免程式崩潰。這也對 AI 訓練過程中特別重要,能保證程式遇到問題時仍能繼續執行。except ZeroDivisionError
:這裡的意思是「當發生 ZeroDivisionError(除以 0 的錯誤)時,執行下面的程式碼」。print("不能用 0 來做除數哦~")
:當程式偵測到 ZeroDivisionError 時,這行會執行並輸出錯誤訊息,提醒使用者不能用 0 來做除法。在 AI 模型開發中,數據的處理可能會遇到多種異常狀況,比如文件格式不正確或資料缺失。學會如何處理這些異常,可以讓程式不會因為小錯誤就中斷。try - except - else
是進一步的異常處理技巧,同樣的,當 try
區塊中的程式碼沒有報錯時,else
區塊的程式碼才會執行,非常適合用來處理當運算成功後要執行的後續步驟。
這個例題使用了兩個 except
來分別捕捉不同的錯誤,而多層次的異常處理在 AI 程式中很常見,因為 AI 會涉及多重數據檢查與輸入。
ValueError
:用來處理輸入不是數字的情況。ZeroDivisionError
:處理除以 0 的問題。else
:當輸入數字無誤且不會除以 0 時,else
區塊中的運算結果會顯示出來。這在 AI 程式設計中有助於控制流程,在數據正確時進行後續的模型訓練或分析。在 AI 程式中可能會遇到各種不同的錯誤,這時設計多組異常處理程序可以有條理的管理不同類型的錯誤,讓程式更整潔、維護起來就會更容易。
這裡的 except
可以一次捕捉多個異常類型,並將錯誤信息存儲在變數 v
中,同樣也是為了確保在遇到異常情況時程式不會突然中斷。
日誌記錄在 AI 中十分重要,因為 AI 模型訓練過程可能需要多次嘗試,記錄每次訓練的過程有助於找出問題所在。
使用 logging
模組來記錄資訊和錯誤, 可以清楚知道程式在哪個環節發生了問題,這在訓練 AI 模型時,能幫助我們找到哪一步出了錯、並且記錄每次執行的詳細情況。
今天學習的異常處理和除錯技巧,對於未來的 AI 開發至關重要~因為 AI 涉及大量的數據處理和計算,程式出錯的機率也會因此增加。因為學習除錯技巧能夠處理多種不同的錯誤,我也發覺到如此可以撰寫出更具彈性的程式。
明天會進行更詳細的實作,並且不再是簡單的數學計算><要做的是模擬一個簡單的AI聊天系統,使用者會輸入一些資料,而 AI 根據不同的情況回應。結合今天學到的程式除錯與異常處理,會和在現實生活中的 AI 助手、客服機器人等應用更貼近、更有共鳴!