作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我环顾四周,但未能找到答案。
我想要做的是打印 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
}
最佳答案
错误对象键的可枚举性因浏览器而异。你最好的选择是使用Object.getOwnPropertyNames
:
var props = Object.getOwnPropertyNames(x);
console.log(props);
for (var i=0; i<props.length; i++) console.log(x[props[i]]);
I need something to send back to the server for error reporting.
我会明确命名我感兴趣的属性,例如:
reportErrorBack( JSON.stringify({
name: e.name, // on the Error.prototype
message: e.message,
stack: e.stacktrace
});
关于javascript - 如何枚举 Javascript 中的错误对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23611159/
我是一名优秀的程序员,十分优秀!