我尝试了以下代码
try {
alertt("dddd");
} catch (e) {
console.log(e.stack);
}
它会在Google Chrome和Mozilla Firefox中产生堆栈跟踪。但它在Internet Explorer中返回 undefined 。
是否有任何方法可以在Internet Explorer中获取堆栈跟踪?
答案 0 :(得分:1)
您的代码肯定适用于IE11;我刚尝试过。我相信它至少也应该适用于IE10。
您可能也对console.trace
感兴趣,它会为您提供堆栈跟踪。这在IE11中肯定是新的,但这只是升级的另一个好理由 - IE11中的开发工具比以前好几个数量级。
答案 1 :(得分:-2)
您可以使用MSDN文档中提到的e.description
:
答案 2 :(得分:-2)
语法:
errorObj = new Error()
errorObj = new Error([number])
errorObj = new Error([number[, description]])
参数说明:
errorObj
Required. The variable name to which the Error object is assigned. The variable assignment is omitted when you create the error using a throw statement.
号
Optional. Numeric value assigned to an error. Zero if omitted.
描述
Optional. Brief string that describes an error. Empty string if omitted.
实施例
function checkInput(x) {
try
{
if (isNaN(parseInt(x))) {
throw new Error("Input is not a number.");
}
}
catch(e)
{
document.write(e.description);
}
}
checkInput("not a number");
注意:每当发生运行时错误时,都会创建一个Error对象的实例来描述错误。此实例具有两个内部属性,其中包含error (description property)
和error number (number property)
的说明。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ie/1dk3k160%28v=vs.94%29.aspx。
错误号是32位值。高16位字是设施代码,而低字是实际的错误代码。