有时我会收到这样的错误,它来自catch(err => console.log(err)):{ [Error: SQLITE_ERROR: no such table: table_name] errno: 1, code: 'SQLITE_ERROR' }它看起来像一个对象,是的,但为什么它的开头有一个数组?我怎样才能得到那个数组?我想得到那个错误信息:Error: SQLITE_ERROR: no such table: table_name决定下一步做什么。我认为错误消息是键名的一部分,所以我尝试了:Object.keys(err);但是返回一个这样的数组:["errno", "code"]如何获取该错误消息?
2 回答
![?](http://img1.sycdn.imooc.com/54584cd10001404b02200220-100-100.jpg)
30秒到达战场
TA贡献1828条经验 获得超6个赞
IIRC .... sqlite使用内置Error对象。您在括号中看到的不是数组;它实际上是一个人类可读的错误描述字符串,它在括号中(可能是为了强调)。
try {
....
} catch (err) {
console.log(err.message); // this should be your error message.
}
![?](http://img1.sycdn.imooc.com/54584cc500019c5b02200220-100-100.jpg)
HUX布斯
TA贡献1876条经验 获得超6个赞
无论抛出错误,都不是抛出一个简单的字符串。尝试不同的日志记录方法以更好地了解返回的内容,因为console.log
在记录时可能不会为您提供正确的错误值。
尝试使用console.log(JSON.parse(JSON.stringify(error)))
并查看返回的内容。您可能需要执行类似console.log(error.response.message)
或类似的操作才能获得可以使用的更有用的字符串。
console.log
也可能toString
在返回的对象上运行自定义方法,例如:https : //repl.it/@Twinbird24/WingedCloudyTrials
添加回答
举报
0/150
提交
取消