This is an archive of the old site. Visit the latest version at dexie.org.

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