5

说,我有以下代码,我使用 Windows 脚本主机作为 .JS 文件运行:

try
{
    ProduceAnError();
}
catch(e)
{
    //How to get an error line here?
}

有没有办法知道发生错误(异常)的错误行?

4

2 回答 2

0

对不起我的其他回复。这不是很有帮助:P

我相信您正在寻找的是 ReferenceError 的堆栈属性。您可以使用传递给 catch 的参数来访问它:

try {
  someUndefinedFunction("test");
} catch(e) {
  console.log(e.stack)
}

示例输出:

 ReferenceError: someUndefinedFunction is not defined
     at message (http://example.com/example.html:4:3)
     at <error: TypeError: Accessing selectionEnd on an input element that cannot have a selection.>
     at HTMLInputElement.onclick (http://example.com/example.html:25:4)
于 2011-09-18T03:51:11.320 回答
0

实际上没有办法以编程方式获取堆栈甚至捕获行号。抛出错误时只能看到行号。充其量您可以获得错误代码和描述,或者您可以自己犯错误。

这是文档

还有一个例子

try {
    produceAnError();
} catch(e) {
    WScript.echo((e.number>>16 & 0x1FFF)); // Prints Facility Code
    WScript.echo((e.number & 0xFFFF));     // Prints Error Code
    WScript.echo(e.description);           // Prints Description
    throw e;
}
于 2014-05-27T22:40:56.650 回答