A database operation was attempted that violates a constraint. For example, if you've defined a unique index "name" and put two objects in that table with the same name, the second put() will result in a constraint error
const db = new Dexie('mydb');
db.version(1).stores({
foo: "id, &name"
});
async function main () {
try {
await db.foo.put({id: 1, name: "foo"}); // ok
await db.foo.put({id: 2, name: "bar"}); // ok
await db.foo.put({id: 3, name: "bar"}); // will fail with ConstraintError
} catch (e) {
assert (e.name === "ConstraintError");
}
}
main();
Sample using Promise.catch()
doSomeDatabaseWork().then(result => {
// Success
}).catch('ConstraintError', e => {
// Failed with ConstraintError
console.error ("Constraint error: " + e.message);
}).catch(Error, e => {
// Any other error derived from standard Error
console.error ("Error: " + e.message);
}).catch(e => {
// Other error such as a string was thrown
console.error (e);
});