3

デフォルトでは、ファイルが見つからない場合、Node.js は次の例外をスローします。

{ [Error: ENOENT, no such file or directory 'InvalidFile']
  errno: 34,
  code: 'ENOENT',
  path: 'InvalidFile',
  syscall: 'open' }

技術的に言えば、これは JavaScript オブジェクトであるはずです。JavaScript オブジェクトのセマティクスに従って、メンバー要素を区切るためにカンマが必要です。この場合、 と の間[Error: ENOENT, no such file or directory 'InvalidFile']にコンマはありませんerrno: 34,。私の質問は

  1. このようなオブジェクトを作成するにはどうすればよいですか?

  2. [Error: ENOENT, no such file or directory 'InvalidFile']プログラム内の要素にアクセスするにはどうすればよい ですか?

4

2 に答える 2

5

まあ、それは完全なコードではありません。これは JavaScript のリテラル構文に基づいていますが、util.inspect()(または同様の内部関数) から生成されたオブジェクトの単なる表現です。

角括弧は、の前にのタイプを示します。そして、残りは列挙可能なプロパティとそれに追加された値のリストです。Errormessage

自分で作成するには:

var error = new Error("ENOENT, no such file or directory 'InvalidFile'");
error.errno = 34;
error.code = 'ENOENT';
error.path = 'InvalidFile';
error.syscall = 'open'

console.log(error);               // uses `util.inspect()`
console.log(util.inspect(error)); // or use it directly

console.log(error.message); // "ENOENT, no such ..."
console.log(Object.prototype.toString.call(error)); // "[object Error]"

また、フォーマットのより大きなサンプルについては、いくつかの組み込みモジュールをログに記録してみてください。

console.log(console);
{ log: [Function],
  info: [Function],
  warn: [Function],
  error: [Function],
  dir: [Function],
  time: [Function],
  timeEnd: [Function],
  trace: [Function],
  assert: [Function],
  Console: [Function: Console] }
于 2013-08-16T05:26:41.473 に答える