gpt4 book ai didi

node.js - 有没有办法抛出像 ENOENT 或 EPIPE 这样的系统错误?

转载 作者:行者123 更新时间:2023-12-04 16:10:55 26 4
gpt4 key购买 nike

我想测试我的过程并确保它对 EPIPE 错误具有弹性,因为我们在产品中看到它们并且除了缺少一些日志记录之外它们似乎没有任何问题。

if (process.env.TESTFAIL != null) {
setTimeout(function() {
throw new Error('EPIPE');
}, 1000);
}

虽然看起来不一样,EPIPE 错误看起来像:

Error: write EPIPE at errnoException (net.js:770:11)

还尝试了 throw new Error({code: 'EPIPE', errno: -3}) 等,但看起来不一样。

有没有办法从 Node.js objects 中获取代码/消息?并引发系统错误?

最佳答案

不,没有办法精确地“抛出”ENOENTEPIPE 或类似的东西。

简而言之,它们不是 JavaScript 或编程语言意义上的错误或异常。他们是system error codes ,它们是在某些条件适用时由系统调用或标准库例程返回(或存储)的整数。 (通常在 Unix 或 Linux 系统上,尽管其他操作系统也采用了相同的命名法。)

如果您想以有意义的方式重新创建它们以进行测试,则需要创建触发它们的条件。例如。 ENOENT 当您尝试打开一个不存在的文件(路径)时发生。尝试在您的测试代码中重新创建 ENOENT 出现的条件。您可以启动并中断管道以获取 EPIPE。这是重现这些条件的唯一有意义的方法。

有可能在调用自身 EPIPE 的 JavaScript 级别看到错误,并且有可能抛出 EPIPE 值 (32) 或 嵌入 EPIPE 值或字符串 'EPIPE' 的错误。那些更高级别的错误表现只是真实错误条件的结果。如果您希望您的代码针对潜在问题进行测试,您通常必须创建潜在情况。

关于node.js - 有没有办法抛出像 ENOENT 或 EPIPE 这样的系统错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com