这几乎与IE有关,因为IE是我用来测试它的环境,但是我想知道在抛出错误时是否可以影响错误对象属性的相关性。请考虑以下javascript:
function MyClass (Arg1, Arg2) // Line 5 of my.js
{
if (typeof Arg1 != "string")
throw new Error("Invalid argument passed for MyClass");
// Do some other stuff here
}
您的代码进一步下载
var myvar = new MyClass(100, "Hello"); // Line 3201 of my.js
所以上面会抛出一个错误,但调试信息中报告的错误会显示错误在my.js的第9行而不是3201行引发。这是否可以使用标准方法更改?
答案 0 :(得分:2)
您实际需要的是错误的堆栈跟踪。没有标准,但大多数浏览器确实提供了一些发现方法。快速搜索会出现这个js stack trace示例。
答案 1 :(得分:2)
在firefox中,您可以在捕获错误时使用stack属性。在其他浏览器中,您可以使用消息属性。
请查看此链接,了解如何捕获stacktrace。