DOMException | NN 6 IE なし DOM 1
W3C DOM のオブジェクトに対する操作に何らかの誤りがあると、エラーが発生する (JavaScript 1.5 の用語では "例外を投げる") 場合があります。W3C DOM では、明確に定義 (制限) された例外リストに対応するコード値を返すオブジェクトが定義されています。たとえば、あるテキストノードを別のテキストノードに子ノードとして追加しようとすると、このような操作の appendChild() メソッドがコード値 3 の例外を投げます。このコード値は、DOM の階層に対して不正なアクションまたは論理的に不可能なアクションを実行しようとしたことを意味しています (テキストノードは子ノードを持つことができません)。
スクリプト作成者に DOM の例外情報を返す処理は、DOM ではなくホスト環境が受け持ちます。JavaScript 1.5 は既に例外処理のメカニズムを備えており、DOMException システムと JavaScript の例外処理を融合する作業は、まず Netscape が受け持ち、Netscape 6 で実装されました。この新しいメカニズムでは、さまざまな種類のエラーオブジェクトを例外処理の操作で使い回すことができるため、このメカニズムを W3C DOM の DOMException オブジェクトばかりでなく、いくつかの Netscape 独自のエラーにも対応するように拡張しても、元々のシステムに影響が出ることはありません。ただしこれまでどおり、種類に関わりなくすべての例外処理が try/catch ステートメントの catch ブロックで発生し、例外に関するすべての情報も catch ブロックに対する 1 つのパラメータを使ってオブジェクトとして渡されます。
W3C の DOMException オブジェクトを基に作成された Netscape DOM の例外オブジェクトは、他の原因 (たとえば初期化されていない JavaScript 変数を使用したなど) で発生する例外の場合と異なり、自身に割り当てられているプロパティとメソッドの長いリストと共に catch ブロックに渡されます。DOMException オブジェクト独自の特殊なタイプのプロパティとして code プロパティがあります。さらに 1 〜 15 のコード値は、Level 2 までの DOM で正式に定義されている例外タイプを表しており、これ以外のコード値も将来のリストに追加されることが確実です。Netscape では、ブラウザ固有の例外リストは 1000 から始まっています。
W3C DOM の実際の例外を、その実行パスに沿って処理しようとする場合には、次のようなステートメントを使用できます (このステートメントは DOMException リスト内のコード値が 999 になるまで反復させることができます)。
例外の関する詳細はユーザーにはほとんど役立ちませんが、開発者には非常に有用なものです。例外処理の詳細については、第 12 章の error オブジェクトを参照してください。
オブジェクト参照
    errorObjectReference
オブジェクト固有のプロパティ
code
オブジェクト固有のメソッド
なし
オブジェクト固有のイベントハンドラープロパティ
なし

code | NN 6 IE なし DOM 1
| 読み取り専用
DOM の定義済みエラーに対応する整数を示します。次の表に、すべてのコード値とそれぞれに対応する定数、および例外を投げる問題を示します。
コード | 定数 | 主な原因
--- | --- | ---
1 | INDEX_SIZE_ERR | 整数のオフセットパラメータがターゲットオブジェクトの範囲外にある
2 | DOMSTRING_SIZE_ERR | プロパティの文字列値がホスト言語に対して大きすぎる
3 | HIERARCHY_REQUEST_ERR | 子ノードを持てないノードに子ノードを追加した
4 | WRONG_DOCUMENT_ERR | 別のドキュメントから作成されたノードをインポートプロセスを介さずに挿入した
5 | INVALID_CHARACTER_ERR | 識別子に不正な文字を設定した
6 | NO_DATA_ALLOWED_ERR | データをサポートしないノードにデータを割り当てた
7 | NO_MODIFICATION_ALLOWED_ERR | 読み取り専用プロパティに値を設定した場合
8 | NOT_FOUND_ERR | メソッドのパラメータがオブジェクトの範囲外のノードを参照しようとした
9 | NOT_SUPPORTED_ERR | HTML ドキュメントで XML 固有のメソッドを呼び出した
10 | INUSE_ATTRIBUTE_ERR | 最初に Attr のクローンを作成せずに、既に別の要素に属している Attr ノードにメソッドのパラメータを追加した
11 | INVALID_STATE_ERR | 読み取りも書き込みもできないノードを参照した
12 | SYNTAX_ERR | キー入力にミスがあった
13 | INVALID_MODIFICATION_ERR | ノードのタイプを変更しようとした
14 | NAMESPACE_ERR | 名前空間が一致しないか、名前のフォーマットに誤りがある
15 | INVALID_ACCESS_ERR | 目的の場所にアクセスできない
例
    if (e.code == e.INVALID_CHARACTER_ERR) {
        // process for an illegal identifier character
    }
値
整数
既定値
エラーによって異なります。