Node.js中的錯誤處理
如何在Node.js應用程式執行期間處理錯誤 Node.js中的錯誤通過異常處理。 建立異常 使用throw關鍵字來建立異常: throw value JavaScript執行此行時,正常程式流程將中斷,控制權會返回到最近的異常處理器。 通常在用戶端程式碼中,value可以是任何JavaScript值,包括字串、數字或對象。 在Node.js中,我們不會拋出字串,而是拋出錯誤對象。 錯誤對象 錯誤對象是Error對象的實例,或是擴展了Error類別的對象,這些類別提供在錯誤核心模組中。 throw new Error('Ran out of coffee') 或者 class NotEnoughCoffeeError extends Error { //... } throw new NotEnoughCoffeeError 處理異常 異常處理器是一個try/catch語句。 在try區塊中的代碼行引發的任何異常都在相應的catch區塊中進行處理: try { //代碼行 } catch (e) { } 此示例中的e是異常值。 您可以添加多個處理器,可以捕獲不同類型的錯誤。 捕獲未捕獲的異常 如果在執行程序期間拋出未捕獲的異常,程序將崩潰。 為了解決這個問題,你可以聽取process對象上的uncaughtException事件: process.on('uncaughtException', (err) => { console.error('There was an uncaught error', err) process.exit(1) //根據Node文檔,這是必需的 }) 您無需匯入process核心模組,因為它會自動注入。 使用承諾處理異常 使用承諾,您可以鏈接不同的操作,並在結尾處理錯誤: doSomething1() .then(doSomething2()) .then(doSomething3()) .catch(err => console.error(err)) 您如何知道錯誤發生在哪裡?實際上,您並不知道,但您可以在調用的每個函數(doSomethingX)中處理錯誤,在錯誤處理器內部拋出一個新錯誤,將調用外部的catch處理器: const doSomething1 = () => { //....