近期正參加六角學院的 Node.js 2022 直播班,想說做個紀錄並當作複習之用。這邊筆記下如何設計,才能全方位的管理錯誤訊息。
課程相關資訊
[連結]:https://www.hexschool.com/courses/nodejs.html
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
核心概念
1. Express 框架中的 next() ,若你直接傳送 Error 的物件進去,可以統一跳到你定義好的錯誤處理函式中
2. 你可以自定義 error:將所需的資訊和 next() 藉由函式傳入,生成一個 new Error 物件,然後再交由 next() 。換言之,你正在使用一個 Middleware 傳遞物件
3. 可預期的錯誤類型包含:NPM 回傳的錯誤、開發者自訂錯誤、Express App 設置機制所回傳的錯誤
4. 不可預期的錯誤包含:單字拼錯、未宣告變數、非同步沒寫好…等
5. 若要捕捉到所有的錯誤訊息,你會需要有「自定義的 error」、「Dev 環境下回傳的錯誤」、「Prod 環境下回傳的錯誤」、「處理 async/await 的 try/catch 錯誤」、「Node.js 的 uncaughtException」和「Node.js 的 unhandledRejection」