Cet article nécessite une relecture technique. Voici comment vous pouvez aider.
Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
La propriété error
de l'interface IDBRequest
indique le code de l'erreur survenue durant le traitement de la requête. Si la requête est en cours l'exception InvalidStateError
est levée.
Syntaxe
var myError = request.error;
Valeur
Une DOMError
contenant l'erreur correspondante. Dans Chrome 48+ cette propriété renvoie un DOMException
parceque DOMError a été retiré du standard DOM. Les codes d'erreur suivants sont renvoyés sous certaines conditions:
Erreur | Explication |
---|---|
AbortError |
L'annulation d'une transaction provoque cette erreur sur toutes les requêtes en traitement. |
ConstraintError |
Si vous insérez les données qui ne se conforment pas à une contrainte. C'est un type d'exception pour créer des magasins et des index. Vous obtenez cette erreur, par exemple, si vous essayez d'ajouter une nouvelle clef qui existe déjà. |
QuotaExceededError |
Si vous êtes à court d'espace disque et que l'utilisateur a refusé de vous en accorder plus. |
UnknownError |
Si l'opération échoue sans raison connue de la base de données elle-même. Un échec en raison d'erreurs IO sur le disque par exemple. |
NoError |
Si la requête réussit. |
VersionError |
Si on essaiye d'ouvrir une base de données avec une version inferieure à la version actuelle. |
En plus de ces codes d'erreurs envoyés à l'objet IDBRequest
, les opérations asynchrones peuvent aussi lever des exceptions. La liste décrit les problèmes qui peuvent arriver durant l'exécution de la requête, mais on peut également trouver d'autres problèmes quand la requête est faite. Par exemple, si la requête échoue et que le résultat est indisponible, l'exception InvalidStateError
est levé.
Exemple
L'exemple suivant demande un titre d'enregistrement donné, onSuccess
obtient l'enregistrement associé de IDBObjectStore
(mis à disposition en tant que objectStoreTitleRequest.result
), on met à jour une propriété de l'enregistrement, puis le sauve dans le magasin d'objets. En bas est une fonction onerror
qui affiche le code d'erreur si la requête échoue. Pour un exemple de travail complet, voir notre To-do Notifications app (view example live.)
var title = "Walk dog"; // Ouvrez une transaction comme d'habitude var objectStore = db.transaction(['toDoList'], "readwrite").objectStore('toDoList'); // Obtenez l'objet toDoList qui a ce titre var objectStoreTitleRequest = objectStore.get(title); objectStoreTitleRequest.onsuccess = function() { // Prenez l'objet de données renvoyé comme résultat var data = objectStoreTitleRequest.result; // Mettre à jour la valeur notified de l'objet à "yes" data.notified = "yes"; // Créer une autre requête qui insère le nouvelle élément dans la base de données var updateTitleRequest = objectStore.put(data); // Lorsque cette requête réussit, appelle de la fonction displayData() pour mettre à jour l'affichage updateTitleRequest.onsuccess = function() { displayData(); }; }; objectStoreTitleRequest.onerror = function() { // Si une erreur se produit à la demande, on l'affiche console.log("Il y a eu une erreur dans la récupération des données: " + objectStoreTitleRequest.error); };
Spécifications
Spécification | Statut | Commentaire |
---|---|---|
Indexed Database API La définition de 'error' dans cette spécification. |
Recommendation |
Compatibilité avec les navigateurs
Fonctionnnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support basique | 23webkit 24 |
10 moz 16.0 (16.0) |
10, en partie | 15 | 7.1 |
Disponible dans workers | (Oui) | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support basique | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
Disponible dans workers | (Oui) | 37.0 (37.0) | (Oui) | ? | (Oui) | ? |
Voir aussi
- Using IndexedDB
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example: To-do Notifications (view example live.)