当前位置: 首页 > 知识库问答 >
问题:

node.js中的错误类

贺正祥
2023-03-14
console.error(new Error('Whoops, something bad happened'));
  // Prints: [Error: Whoops, something bad happened], to stderr
var err = new Error('a');
console.error(err);

终端打印消息,如下所示:

错误:at对象。(/users/suoyong/express//error.js:1:73)在module._compile(module.js:556:32)在object.module._extensions...js(module.js:565:10)在module.load(module.js:473:32)在tryModuleLoad(module.js:432:12)在function.module.js:424:3)在module.runmain(module.js:590:10)在运行(Bootstrap_node.js:394:7)

正如您所看到的,我的代码与节点doc相同,但结果却不同。请帮我解决这个小问题。,

共有1个答案

李疏珂
2023-03-14
console.error(new Error('Whoops, something bad happened'));
// Prints: [Error: Whoops, something bad happened], to stderr

这不是从字面意义上解释的。无论如何,在最新的LTS和稳定版本中都没有。打印这样的错误实际上会打印错误对象的文本表示形式,在文档中称为[error:woops,work something happed]console.error()的文档进一步阐明了实际的预期行为:

如果在第一个字符串中没有找到格式化元素(例如%d),则对每个参数调用util.inspect(),并将结果字符串值连接起来。

util.inspect()方面,此方法“返回对象的字符串表示形式,该对象主要用于调试”。对于error类型的对象,这将生成一个包含错误消息和堆栈跟踪的字符串。

> const txt = util.inspect(new Error("I'm on SO"))
undefined
> txt
'Error: I\'m on SO\n    at repl:1:26\n    at sigintHandlersWrap (vm.js:22:35)\n    at sigintHandlersWrap (vm.js:96:12)\n    at ContextifyScript.Script.runInThisContext (vm.js:21:12)\n    at REPLServer.defaultEval (repl.js:313:29)\n    at bound (domain.js:280:14)\n    at REPLServer.runBound [as eval] (domain.js:293:12)\n    at REPLServer.<anonymous> (repl.js:513:10)\n    at emitOne (events.js:101:20)\n    at REPLServer.emit (events.js:188:7)'
> console.log(txt)
Error: I'm on SO
    at repl:1:26
    at sigintHandlersWrap (vm.js:22:35)
    at sigintHandlersWrap (vm.js:96:12)
    at ContextifyScript.Script.runInThisContext (vm.js:21:12)
    at REPLServer.defaultEval (repl.js:313:29)
    at bound (domain.js:280:14)
    at REPLServer.runBound [as eval] (domain.js:293:12)
    at REPLServer.<anonymous> (repl.js:513:10)
    at emitOne (events.js:101:20)
    at REPLServer.emit (events.js:188:7)
 类似资料:
  • 问题内容: 我正在尝试通过节点https.request()获得一个网页。这样做会导致我的代码记录错误。使用节点请求模块具有相同的结果: 请求的问题:140398870042432:错误:140773F2:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报意外消息:s23_clnt.c:658: 以下内容指示使用了错误的SSL版本,但我找不到更改版本的方法:url错误:“ss

  • 问题内容: 最近,我的运行Node.js的网站收到了大量访问量。随着流量的增加,它开始崩溃很多,这是以前从未发生过的。我的日志中出现以下错误: 有人知道为什么会崩溃吗?和想法如何解决呢? 我正在使用Express.js和Socket.io。它可以在Ubuntu上运行。 问题答案: 错误表示操作系统拒绝您的程序打开更多文件/插槽。 看一下:如何更改Linux中打开文件的数量限制?

  • 问题内容: 为什么我无法连接到mysql服务器? 在同一台服务器上,Apache / PHP服务器正在运行,并且连接正常! 更新 问题答案: 如果以前能解决这个问题,我的第一个猜测就是您已经在后台运行了持有连接的node.js脚本副本。 我认为连接被拒绝是tcp / ip错误消息,而不是来自MySQL的消息,它表明该连接未运行或正在其他端口上运行或通过套接字运行。 您可以尝试远程登录到端口3308

  • 怎么修好?oAuth2有问题吗?

  • 问题内容: 我知道Node.js中不存在,但是我在客户端和服务器上都使用React和相同的代码。我用来检查是否存在的任何方法都可以使我: 未捕获ReferenceError:未定义窗口 如何解决我做不到的事实? 问题答案: Sawtaytoes知道了。我将运行您在componentDidMount()中拥有的任何代码,并将其包含在以下内容中: 如果在React渲染组件时仍未创建窗口对象,则始终可以

  • 我无法成功解析返回的令牌来验证最终的Paypal沙箱支付过程。如有任何帮助或投入,将不胜感激:) API: 最后,paypal-express文档: