2.關於錯誤處理(error handling),下列哪一項做法在大型 程式中通常較佳?
(A) 完全忽略錯誤訊息
(B) 發生錯誤就 立刻強制結束程式,不做任何處理
(C) 使用適當的錯誤處 理機制,例如例外(exception)或回傳錯誤碼
(D) 把所有 錯誤訊息都隱藏不給開發者看
統計: A(0), B(1), C(16), D(0), E(0) #3678233
詳解 (共 1 筆)
【解題思路】
抓關鍵字:「錯誤處理」「大型程式」「較佳做法」。
真正要考的是:
大型程式如何穩定地處理可能發生的錯誤?
正確觀念:
大型程式裡,錯誤一定會發生,不可能完全避免。
因此最好的做法是:
(C)適當地處理錯誤(exception handling 或 error code),讓程式可以持續運作或安全地中止。
其他選項的做法都不只不好,甚至是危險行為。
【為什麼其他選項不正確(逐一破題)】
(A) 完全忽略錯誤訊息
= 假裝沒事
結果錯誤會一路擴散,最後造成更大的災難。
不可能是正確答案。
(B) 發生錯誤就強制結束程式
在大型系統中,這種做法會造成服務中斷、資料遺失。
除非是致命錯誤,一般不會這樣處理。
(D) 把所有錯誤訊息都隱藏
開發者不知道發生什麼事,就無法修正問題。
專案維護會變成地獄。
只有 (C) 是符合大型系統實務的做法。
【延伸知識】
大型系統的錯誤處理通常包含:
-
Try / Catch(例外處理)
拿來捕捉不可預期的異常。 -
回傳錯誤碼
用在流程可控的地方(例如 C 語言或 API 設計)。 -
寫入 log(錯誤日誌)
錯誤要能被追蹤與重現。 -
微服務中常用 retry / graceful fallback
如果某個服務失敗,可以退回預設值、改用備援機制、或稍後重試。
核心理念:
錯誤要被看見、被記錄、被正確處理,而不是被忽略或掩蓋。
【記憶技巧】
口訣:
「錯誤三不要:不忽略、不掩蓋、不隨便掛掉。」
「大型程式靠處理,不靠逃避。」
【常見錯誤】
學生容易誤以為:
-
錯誤越少越好 → 錯,應該是「錯誤可控」。
-
Exception 全部 catch 就好 → 錯,要分種類處理。
-
Log 只要印一行就好 → 在大型系統中需要完整 log 才能 debug。