说,我有以下代码,我使用 Windows 脚本主机作为 .JS 文件运行:
try
{
ProduceAnError();
}
catch(e)
{
//How to get an error line here?
}
有没有办法知道发生错误(异常)的错误行?
对不起我的其他回复。这不是很有帮助: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)
实际上没有办法以编程方式获取堆栈甚至捕获行号。抛出错误时只能看到行号。充其量您可以获得错误代码和描述,或者您可以自己犯错误。
这是文档。
还有一个例子
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;
}