error事件

weixin_34120274發表於2017-02-13

EventEmitter定義了一個特殊的事件error,它包含了“錯誤”的語義。
當我們遇到異常的時候通常會發射error事件。當error被髮射時,EventEmitter規定如果沒有響應的監聽器,node.js會把它當做異常,提出程式並列印呼叫棧。
我們一般要為發射error事件的物件設定監聽器,避免遇到錯誤後整個程式崩潰,例如:

var events = require('events');
var emitter = new events.EventEmitter();
emitter.emit('error');
執行時會顯示以下錯誤:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Uncaught, unspecified 'error' event.
at EventEmitter.emit (events.js:50:15)
at Object.<anonymous> (/home/byvoid/error.js:5:9)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)

相關文章