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 の定義済みエラーに対応する整数を示します。次の表に、すべてのコード値とそれぞれに対応する定数、および例外を投げる問題を示します。 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
例 | ||||||||||||||||||||||||||||||||||||||||||||||||
if (e.code == e.INVALID_CHARACTER_ERR) { // process for an illegal identifier character } |
||||||||||||||||||||||||||||||||||||||||||||||||
値 | ||||||||||||||||||||||||||||||||||||||||||||||||
整数 |
||||||||||||||||||||||||||||||||||||||||||||||||
既定値 | ||||||||||||||||||||||||||||||||||||||||||||||||
エラーによって異なります。 |