我如何阻止node.js打印它遇到错误时遇到的第一个SyntaxError?

时间:2014-05-14 23:38:23

标签: javascript node.js v8

这很奇怪。如果您需要一个语法错误的模块。您可以捕获错误,但是即使您发现错误,节点或v8或系统的某些部分也会将语法错误打印到控制台。您可以通过将以下三个文件放在同一目录中并运行“node example.js”来复制该问题。如何防止此输出?重定向不是一个可行的解决方案,因为我想在我的程序中使用stderr和stdout。我想完全控制错误输出。我一直在搜索V8和node.js源代码,我似乎无法找到它发生的位置,所以我不知道如何阻止它。

谢谢!

文件一:

// example.js
try{ require('./error-one.js'); }
catch(e){ console.log("Caught:", e); }

try{ require('./error-two.js'); }
catch(e){ console.log("Caught:", e); }

文件二:

// error-one.js
var a = { "b" c };

文件三:

// error-two.js
var d = { "e" f };

编辑:澄清一下,我似乎无法删除的行是“var a = {”b“c};”在捕获的错误之前出现的箭头下方。正如我在评论中所说,奇怪的是它不会出现两次。仅适用于语法错误的第一个文件。

0 个答案:

没有答案