前端早早聊-跳槽營
Node是單線程運行環(huán)境,一旦拋出的異常沒有被捕獲,就會引起整個進程的崩潰。所以,Node的異常處理對于保證系統(tǒng)的穩(wěn)定運行非常重要。 node的處理方法: 1、使用throw語句拋出異常 常用的捕獲異常方式,結(jié)構(gòu)無法捕獲異步運行的代碼拋出的異常。 try{ throw "我是一個自定義的錯誤"; }catch(err){ console.log(err); } //異步 try{ setTimeout(()=> { throw "我是一個自定義的錯誤"; },0); }catch(err){ console.log(err); } 2、回調(diào)函數(shù) 將錯誤對象作為第一個參數(shù),傳入回調(diào)函數(shù)。這樣就避免了捕獲代碼與發(fā)生錯誤的代碼不在同一個時間段的問題。 let fs = require('fs'); fs.readFile('/test.txt', (err, data) =>{ if (err !== null) throw err; console.log(data); }); 3、通過EventEmitter接口,發(fā)出一個error事件。 var EventEmitter = require('events').EventEmitter; var emitter = new EventEmitter(); emitter.emit('error', new Error('something bad happened')); emitter.on('error', function(err) { console.error('出錯:' + err.message); });