javascript - console.log 格式化错误对象与 Error.prototype.toString 不同

标签 javascript tostring

我看到 Error.prototype.toString 实现 here .

它主要将 error.nameerror.message 打印为 name + ': ' + msg

但是当我将 Error 对象传递给 console.log 时,我看到 文件不存在 错误将更多属性打印为 errno、代码、系统调用

console.log 调用什么来打印 Error 对象的字符串摘要?

代码:

var fs = require('fs')

fs.readFile('/abcd', 'utf8', function(err, res){
  console.log("the error toString method shows, " + err)
  console.log("the console log's string summary is,")
  console.log(err)
})

输出:

the error toString method shows, Error: ENOENT: no such file or directory, open '/abcd'
the console log's string summary is,
{ [Error: ENOENT: no such file or directory, open '/abcd'] errno: -2, code: 'ENOENT', syscall: 'open', path: '/abcd' }

最佳答案

console.log 未指定,因此每个浏览器实现不同的东西。 (Node.js 也是如此。)如果您想确切了解什么,可以查看浏览器源代码,当然 IE/Edge 除外。

在 Node.js 中,我假设您由于 require 而使用 Node.js,代码是:

关于javascript - console.log 格式化错误对象与 Error.prototype.toString 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34099996/

相关文章:

javascript - Ruby on Rails 显示 f.text_area 的剩余字符数

javascript - Jquery Url 拆分并获取中间值

java - 用于调试目的的命名 (toString) Lambda 表达式

java - 在 Java 中按日期查找最年轻和最年长的狗

c# - 匿名类型上的 ToString 如何工作?

javascript - 使用控制台窗口防止在客户端自动触发点击事件

javascript - 将 Prop 从孙辈传递给 parent

javascript - 我应该为删除的元素调用 ResizeObserver.unobserve 吗?

c++ - std::string 的值,同时保持向后兼容性

Java:使用随机字符创建长度为X的字符串