JavascriptにエラーがSQLErrorであることを確認する方法はありますか?例: JavascriptにエラーがSQLErrorであることを確認する方法はありますか?
mydb.query() // method returns Promise. It can throw SQLError by SQLite
.catch(function(e){
// some code to determine error type
});
JavascriptにエラーがSQLErrorであることを確認する方法はありますか?例: JavascriptにエラーがSQLErrorであることを確認する方法はありますか?
mydb.query() // method returns Promise. It can throw SQLError by SQLite
.catch(function(e){
// some code to determine error type
});
に等しい:WebSQLで
、エラーコールバックは常にと呼ばれていますSQLError。
SQLErrorはです。エラーコールバックにはが使用されています。
SQLErrorはErrorのサブクラスではありません。
また、エラーインスタンスで約束を拒否する必要があります(たとえば、http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-rejected-with-a-non-errorを参照)。
したがって、SQLErrorを使用して約束を拒否するには、エラーに変換する必要があります。 (必要ならば、エラーの独自のサブクラスを作成して、instanceof
で簡単にSQLエラーを特定できます)。
WebSQLがエラーコールバックを呼び出す時点で、code
およびmessage
フィールドのSQLErrorオブジェクトがあることがわかります。
、このいずれかを試してみてください。
try{abc();}
catch(e){var err = e ; console.log(err.message);}
コードがエラーメッセージを返します。私はエラーがSQLErrorであったかどうかを判断し、これに応じていくつかのコードを実行したい。 エラーメッセージで判断するのが悪いのは 'e.message'の内容が違うからです – Dmitry
私がチェック "e.constructor.name
" 属性に方法を見つけました。 SQLErrorの場合には、それはあなたが "なSQLError" のスペックhttps://www.w3.org/TR/webdatabase/を検索する場合は、あなたが気づく
mydb.pQuery() // method returns Promise. It can throw SQLError by SQLite
.catch(function(e){
if(e.constructor.name==='SQLError'){
// code
}
})
'e instanceof SQLError'? dbと通信するためにどのモジュールを使用しますか? – Slavik
@slavik私は標準のブラウザデータベースメソッドを使用します。 コード 'if(e instanceof SQLError)'が 'ReferenceError:SQLError is not defined'をスローします。 – Dmitry