有一種 bug,不是今天的你造成的,
是三個月後的你造成的。
你現在寫了一個 switch,
處理三種狀態,邏輯完全正確,
測試也都過了。
三個月後,需求改了,
新增了第四種狀態。
你在 enum 裡加了一個值,
但忘記去更新那個 switch。
編譯過了,沒有警告,
程式跑起來,遇到第四種狀態的時候,
switch 什麼都不做,
靜靜地繼續往下執行。
症狀可能是某個功能沒有反應,
可能是某個變數沒有被更新,
可能要跑很久才會觸發那個狀態,
然後你花了半天才找到原因。
default 加一行,可以讓這種問題立刻現形。