我环顾四周,但未能找到这个问题的答案。
我想要做的是打印 Error 对象中可用的所有属性以进行错误报告。这可能是不可能的,但我至少想知道为什么。
我在 Ubuntu 12.04 上的 Chrome 和 Firefox 中尝试了以下操作。
try {
throw new Error('Foo');
} catch (x) {
console.log(Object.keys(x)); // []
for (var i in x) console.log(i); // Prints nothing
}
Run Code Online (Sandbox Code Playgroud)
错误对象键的可枚举性因浏览器而异。你最好的选择是使用Object.getOwnPropertyNames:
var props = Object.getOwnPropertyNames(x);
console.log(props);
for (var i=0; i<props.length; i++) console.log(x[props[i]]);
Run Code Online (Sandbox Code Playgroud)
我需要一些东西发送回服务器以进行错误报告。
我会明确命名我感兴趣的属性,例如:
reportErrorBack( JSON.stringify({
name: e.name, // on the Error.prototype
message: e.message,
stack: e.stacktrace
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |