簡體   English   中英

Node-express應用程序中的拋出錯誤

[英]Throwing error in Node-express application

有人可以幫我解決NodeJS中的錯誤嗎?

何時在Node-express應用程序中引發或使用Try..catch塊。

現在,我了解到我們希望在遇到錯誤時需要try-catch博客,並且如果發生錯誤(主要是處理錯誤),我們想采取一些措施。

但是,我想了解捕獲和錯誤,記錄並隨后拋出錯誤的正確做法嗎?

例如

resolve: async (parent, args, request) => {
        //Create function to delete entire row from the dashboard
        try {
               const deleteSelectedRecord = await 
               deleteSelectedRow(`dashboard`, `id`, args.id)
               return deleteSelectedRecord
        } catch (err) {
             console.error(err)
             throw new Error(err)
        }

您無需在catch塊中拋出錯誤,因為它捕獲了try塊中的任何錯誤,因此您可以處理它而不會導致應用程序崩潰

try {
   throw Error('Example error')
} catch (e) {
   console.log(e)
}

這完全取決於您的代碼流和要求。

當然,您可以捕獲並記錄任何異常,並且如果您想通知調用函數該異常,則可以再次引發相同的異常,也可以引發新的被屏蔽的異常,以便調用函數確定下一步的操作。

例如:如果某個函數要將用戶記錄保存在數據庫中:那么它將創建用戶ID,並使用用戶詳細信息和用戶ID調用saveToDB函數。 在saveToDB函數中,兩種類型的異常

  1. 用戶ID已存在於數據庫中:由於對userId的約束存在唯一鍵沖突,因此將出現此異常。
  2. 數據庫連接不可用:如果數據庫繁忙或宕機或當前未建立連接,則可能會出現此異常

但是調用函數不想知道異常的詳細原因,只需要知道發生了什么就可以保存動作。 如果用戶ID重復,則可以嘗試使用另一個用戶ID;如果數據庫連接不可用,則可以在一段時間后嘗試。

雖然示例不准確,但我希望您能理解。

暫無
暫無

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

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