撰寫 Node.js 應用的時候,難免會遇到錯誤,而比較麻煩的是這些錯誤可能會導致伺服器停機。
就好比一段感情中,對方承諾(Promise)與您天長地久,不過承諾歸承諾,人類的心思是相當複雜的。當其中一方出軌但卻不得而知時,彼此隔閡就會日積月累的加深,等到整個事件曝光後(伺服器停機)就已經來不及了。因此最好在感情狀況可能略有徵兆時,就提前捕捉(catch)避免不忠之人糟蹋他人。
當你的 Node.js controller 某處發生錯誤,而 Promise 無法完成其承諾,catch 就是那個能揭露真相的角色。它不僅捕捉到 Promise 的不忠,還提供了詳細的證據,像是錯誤訊息或異常的狀態碼。這就像是在抓姦現場找到的照片或錄音,這可以避免事態惡化且維持伺服器的正常運作。
影片連結:https://youtu.be/PQ5sFBS2HNY
本集範例程式碼:
https://github.com/Wcc723/node-ironman-sample-2023/tree/feature/error-catch
雖然 catch 可以避免伺服器的錯誤停機,但還是需要有其他機制來修正此錯誤,避免路由無法正確給予用戶回應。