情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでエラーイベントを使用する

errorという名称のイベント(エラーイベント)は特別なイベントであり、このイベントに1つもイベントハンドラが登録されていない状態でこのイベントが発生すると例外が発生します。

エラーイベントを発生させる際にはイベントの引数として任意のエラーオブジェクトを指定します。

サンプルコード1

event-emitter-error-1.js

エラーイベントに1つもイベントハンドラが登録されていないため例外が発生する例です。

var events = require('events');

var eventEmitter = new events.EventEmitter();
eventEmitter.emit('error', new Error('error'));

実行結果

C:\work\node>node event-emitter-error-1.js
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: error
    at Object.<anonymous> (C:\work\node\event-emitter-error-1.js:4:28)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Function.Module.runMain (module.js:575:10)
    at startup (node.js:160:18)
    at node.js:449:3

サンプルコード2

event-emitter-error-2.js

エラーイベントにイベントハンドラが登録されているため例外が発生しない例です。

var events = require('events');

var eventEmitter = new events.EventEmitter();
eventEmitter.on('error', function (err) {
    console.error('error has occured.');
});
eventEmitter.emit('error', new Error('error'));

実行結果

C:\work\node>node event-emitter-error-2.js
error has occured.

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js