簡體   English   中英

NodeJS錯誤處理-使用錯誤代碼或子類

[英]NodeJS error handling - using error codes or subclassing

在NodeJS中使用自定義錯誤代碼與使用Error自定義子類有什么好處和缺點?

在Java或Python這樣的語言中,我將使用子類,因為我可以在不同的catch塊中處理它。 但是,在JavaScript中,為每個精確的錯誤情況編寫一個特定的Error子類對我來說似乎是多余的,因為如果不使用instanceof運算符就無法通過catch塊使用它。 順便說一句, throw也不是在NodeJS中傳遞錯誤的常用方法(我的意思是錯誤優先的回調樣式)。 因此,最終,我決定對所有項目的錯誤堅持使用一個自定義類(從Error繼承)。 但是,現在我應該介紹很多不同的錯誤代碼。 我想知道-處理NodeJS中的錯誤是否是常規流程?

為錯誤消息創建一個Error對象,使您可以指定可能與錯誤本身有關的其他內容。 考慮以下:

var e = new Error("An error message");
e.status = "TERMINATED";
e.exit_code = 127:

Error對象只是另一個javascript對象,因此向其添加屬性是有效的。 此外,您還可以使用一些有用的信息來跟蹤錯誤消息,例如“ e.stack”,以查看創建錯誤對象時堆棧的外觀。 有關Error對象的其他屬性,請訪問此網站

為什么不創建一個錯誤工廠“類”來創建帶有所需“錯誤代碼”的Error對象? 您始終可以檢查捕獲的錯誤是否由工廠創建,如果它具有擴展對象所具有的任何屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM