1. 開発者向けのウェブ技術
  2. Web API
  3. IDBTransaction
  4. IDBTransaction: error プロパティ

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

IDBTransaction: error プロパティ

Baseline 広く利用可能 *

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

* この機能の一部は、対応レベルが異なる場合があります。

IDBTransaction インターフェイスの IDBTransaction.error プロパティは、トランザクションが失敗したときにエラーの種類を返します。

メモ: この機能はウェブワーカー内で利用可能です。

関連するエラーが入った DOMException を返すか、エラーが無いときは null を返します。

エラーを発生させた要求オブジェクトと同じエラーの参照であることも、トランザクションの失敗 (QuotaExceededError など) であることもあります。

トランザクションが完了していないか、正常にコミットして完了した場合は、このプロパティは null です。

以下のコード断片では、データベースの読み書きトランザクションを開き、オブジェクトストアにデータを追加します。トランザクションのイベントハンドラーに設定した関数により、成功時または失敗時にトランザクションを開いた結果を報告する点にも注目してください。transaction.onerror = (event) => { }; ブロックに注目してください。これは、トランザクションの失敗時何がいけなかったのかを報告する助けとして transaction.error を用いています。動く例全体は、To-do Notifications アプリケーションを参照してください。(動く例を見る)

js
const note = document.getElementById("notifications");
// IDB データを保存する db オブジェクトのインスタンス
let db;
// データベースを開く
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = (event) => {
 note.innerHTML += "<li>データベースを初期化しました。</li>";
 // データベースを開いた結果を変数 db に保存する
 // これは後でよく使う
 db = DBOpenRequest.result;
 // addData() 関数を実行し、データベースにデータを追加する
 addData();
};
function addData() {
 // IDB に挿入できる新しいオブジェクトを生成する
 const newItem = [
 {
 taskTitle: "Walk dog",
 hours: 19,
 minutes: 30,
 day: 24,
 month: "December",
 year: 2013,
 notified: "no",
 },
 ];
 // データベースの読み書きトランザクションを開き、データを追加する準備をする
 const transaction = db.transaction(["toDoList"], "readwrite");
 // トランザクションを開くのに成功したら報告する
 transaction.oncomplete = (event) => {
 note.innerHTML +=
 "<li>トランザクション完了: データベースの変更が完了しました。</li>";
 };
 transaction.onerror = (event) => {
 note.innerHTML += `<li>以下のエラーによりトランザクションを開けませんでした: ${transaction.error}</li>`;
 };
 // トランザクション上でオブジェクトストアを生成する
 const objectStore = transaction.objectStore("toDoList");
 // オブジェクトストアに newItem オブジェクトを追加する
 const objectStoreRequest = objectStore.add(newItem[0]);
 objectStoreRequest.onsuccess = (event) => {
 // 要求の成功を報告する (これは、アイテムがデータベースに正常に格納されたことを意味しません。
 // これを知るには、transaction.onsuccess を用いる必要があります)
 note.innerHTML += "<li>要求に成功しました。</li>";
 };
}

仕様書

仕様書
Indexed Database API 3.0
# ref-for-dom-idbtransaction-error1

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /