javascript异常对象格式

标签 javascript node.js exception object

默认情况下,当找不到文件时,Node.js 会抛出以下异常。

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

从技术上讲,这应该是一个 JavaScript 对象。根据 javascript object sematics,应该有一个逗号来分隔成员元素。在这种情况下,[Error: ENOENT, no such file or directory 'InvalidFile']errno: 34, 之间没有逗号。我的问题是

  1. 如何构建这样的对象?

  2. 我如何访问 [错误:ENOENT,没有这样的文件或目录 'InvalidFile'] 元素 在程序中?

最佳答案

嗯,它不完全是代码。它基于 JavaScript 的文字语法,但只是从 util.inspect() 生成的对象的表示。 (或类似的内部功能)。

方括号中提到了 Error类型在其 message 之前.并且,其余部分是可枚举属性及其添加到其中的值的列表。

自己创建:

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] }

关于javascript异常对象格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266193/

相关文章:

javascript - 如何测试浏览器对背景剪辑 : text? 的支持

javascript - Mongoose 里面的 promise 改变发生得很晚

javascript - 使用 jinja2 兼容模式预编译 Nunjucks 模板

c# - C# 中异常的高阶函数方法

java - 我无法将 jtbable 中的数据插入数据库(netbeans 和 java 编码中的新功能)已编辑

javascript - 使用 appendChild 将 CSS 附加到文档无法按预期工作

javascript - 命名空间类的 typescript 定义

c# - 异常捕获最佳实践 (c#/.net)

javascript - 如何选择与单击按钮相同的 div 的元素

php - 无法使用 laravel 和 vue js 运行 watch