Javascript中有没有办法确定错误是SQLError?例:
mydb.query() // method returns Promise. It can throw SQLError by SQLite
.catch(function(e){
// some code to determine error type
});
答案 0 :(得分:0)
试试这个:
try{abc();}
catch(e){var err = e ; console.log(err.message);}
答案 1 :(得分:0)
我找到了检查“e.constructor.name
”属性的方法。在SQLError的情况下,它等于"SQLError"
mydb.pQuery() // method returns Promise. It can throw SQLError by SQLite
.catch(function(e){
if(e.constructor.name==='SQLError'){
// code
}
})
答案 2 :(得分:0)
如果您在规范https://www.w3.org/TR/webdatabase/中搜索" SQLError",您会注意到:
在WebSQL中,错误回调是始终使用SQLError调用。
SQLError仅 用于错误回调。
SQLError不是Error的子类。
此外,应使用Error实例拒绝承诺(例如,请参阅http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-rejected-with-a-non-error)。
因此,要拒绝使用SQLError的promise,您应该将其转换为Error。 (如果需要,可以创建自己的Error子类,以便使用instanceof
轻松识别SQL错误。
这很容易做到,因为在WebSQL调用错误回调的时候,你知道你有一个带有code
和message
字段的SQLError对象。