Dexie.DataError

Inheritance Hierarchy

Description

An index property (or primary key) was of the wrong type (not an indexable). This happens when:

  • …adding a new object to a table where its primary key is not an indexable type)
  • …querying by index, where the argument is not an indexable type)

Sample


const db = new Dexie('testdb');
db.version(1).stores({
    foo: 'id,bar'
});

db.foo.put({id: null}); // fails with DataError because null is not indexable.
db.foo.put({id: 1, bar: null}); // succeeds but won't generate any "bar" index.
db.foo.where('bar').equals(undefined).toArray(); // Fails with DataError since undefined is not indexable.

Sample using Promise.catch()

doSomeDatabaseWork().then(result => {
    // Success
}).catch('DataError', e => {
    // Failed with DataError
    console.error ("Data 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);
});

Sample: switch(error.name)

db.on('error', function (error) {
    switch (error.name) {
        // errnames.Data ==="DataError"
        case Dexie.errnames.Data:
            console.error ("Data error");
            break;
        default:
            console.error ("error: " + e);
    }
});

Properties

nameWill always be Dexie.errnames.Data === "DataError"
messageDetailed message
inner?Inner exception instance (if any)
stackCan be present if the error was thrown. If signaled, there wont be any call stack.

Table of Contents