我正在开发一个代码解析器,现在我会抛出一个带有特定文件名和行号的语法错误。我试过了:
new SyntaxError(message, fileName, lineNumber)
它在Firefox中运行良好,但Chrome开发人员工具没有显示正确的文件或行号。 我搜索了很多,但我找不到任何关于它的东西。是否有针对它的crossbrowser解决方案?
答案 0 :(得分:0)
声明它适用于所有现代浏览器。你忘记了throw
:
try {
var scripts = document.getElementsByTagName('script');
var lastScript = scripts[scripts.length - 1];
var scriptName = lastScript.src;
throw new SyntaxError("Hello", scriptName, 10);
} catch (e) {
console.log(e instanceof SyntaxError); // true
console.log(e.message); // "Hello"
console.log(e.name); // "SyntaxError"
console.log(e.fileName); // "someFile.js"
console.log(e.lineNumber); // 10
console.log(e.columnNumber); // 0
console.log(e.stack); // "@Scratchpad/2:11:9\n"
}