Hyo*_*yun 7 javascript json node.js
我正在使用节点4.2,我正在捕获错误并在其上使用JSON.stringify.对于大多数对象,这很好.但是当抛出[TypeError:callback不是函数]时,它返回一个空对象.如果我直接控制它.它可以正常工作.
Mozilla的页面说:
根据传统的转换语义,在字符串化期间将Boolean,Number和String对象转换为相应的原始值.
try {
...
} catch (err) {
console.log('error: ' + JSON.stringify(err)) // outputs {}
}
Run Code Online (Sandbox Code Playgroud)
nic*_*elo 10
当您stringify在TypeError上使用时,您将对没有enumerable属性的对象进行字符串化.
所以,如果你这样做
var typeError = new TypeError("hey")
for(var prop in typeError) {
console.log(prop) // this does not run
}
Run Code Online (Sandbox Code Playgroud)
当你使用日志时console.log,你正在使用valueOf,所以
var typeError = new TypeError("hey")
typeError.valueOf() // TypeError: hey(…)
Run Code Online (Sandbox Code Playgroud)
此外,错误知道如何将自己变成一个字符串,所以这也适用:
var typeError = new TypeError("hey")
typeError.toString() // "TypeError: hey"
Run Code Online (Sandbox Code Playgroud)
如果要记录使用普通日志无法看到的对象的属性,则可以使用console.dir该对象.
当你在它上面做的时候typeError,你会发现它有一个message属性:
| 归档时间: |
|
| 查看次数: |
1574 次 |
| 最近记录: |