DOM 操作は、「例外的な」状況、つまり操作を実行できない(というのは論理的な理由でデータが消失するか、あるいは実装が不安定になっている)時に、例外をただ発生させる。一般に DOM メソッドは、 NodeList 使用時の out-of-bound エラーのように、処理のシチュエーションに応じて決められたエラー値を返す。
実装は、他の状況下では他の例外を発生させるべきである。例えば、引数に null が渡された時、実装は、実装依存の例外を発生させるべきである。
例外の概念をサポートしない言語やオブジェクトシステムもある。そのようなシステムの為に、エラー条件はネイティブなエラー報告システムによって示されてもよい。バインディングによっては、例えば、メソッドは一致するメソッドの説明内のリストと同様のエラーコードを返してもよい。
生成されたエラーの型を表す整数。
Note: 他の数値コードは将来の使用のために W3C に予約される。
| DOMSTRING_SIZE_ERR | 指定されたテキストの範囲が DOMString に適さない場合。 |
| HIERARCHY_REQUEST_ERR | ノードの属さない個所にノードが挿入される場合。 |
| INDEX_SIZE_ERR | インデックスまたはサイズが負である場合、また許容値よりも大きい場合。 |
| INUSE_ATTRIBUTE_ERR | 既に他の場所で使用されているプロパティの追加を試みた場合。 |
| INVALID_ACCESS_ERR | パラメータまたは操作が、基礎になるオブジェクトにサポートされない場合。 |
| INVALID_CHARACTER_ERR | 名前のような所で無効または不正な文字が指定された場合。合法な文字の定義については XML 仕様書の production 2 を、合法な名前文字の定義については production 5 を参照。 |
| INVALID_MODIFICATION_ERR | 基礎になるオブジェクトの型の更新を試みた場合。 |
| INVALID_STATE_ERR | 利用できない、またできなくなったオブジェクトの利用を試みた場合。 |
| NAMESPACE_ERR | 名前空間に関して、誤った方法でオブジェクトの作成または変更を試みた場合。 |
| NOT_FOUND_ERR | ノードの存在しないコンテキストで、そのノードの参照を試みた場合。 |
| NOT_SUPPORTED_ERR | 実装が要求するオブジェクトの型や操作をサポートしない場合。 |
| NO_DATA_ALLOWED_ERR | データをサポートしないノードにデータが指定された場合。 |
| NO_MODIFICATION_ALLOWED_ERR | 更新の許可されないオブジェクトへの更新を試みた場合。 |
| SYNTAX_ERR | 無効または不正な文字列が指定された場合。 |
| WRONG_DOCUMENT_ERR | ノードがそれを生成した文書とは別の文書内に使用される場合(それはサポートされない)。 |
exception DOMException {
unsigned short code;
};
// ExceptionCode
const unsigned short INDEX_SIZE_ERR = 1;
const unsigned short DOMSTRING_SIZE_ERR = 2;
const unsigned short HIERARCHY_REQUEST_ERR = 3;
const unsigned short WRONG_DOCUMENT_ERR = 4;
const unsigned short INVALID_CHARACTER_ERR = 5;
const unsigned short NO_DATA_ALLOWED_ERR = 6;
const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
const unsigned short NOT_FOUND_ERR = 8;
const unsigned short NOT_SUPPORTED_ERR = 9;
const unsigned short INUSE_ATTRIBUTE_ERR = 10;
// Introduced in DOM Level 2:
const unsigned short INVALID_STATE_ERR = 11;
// Introduced in DOM Level 2:
const unsigned short SYNTAX_ERR = 12;
// Introduced in DOM Level 2:
const unsigned short INVALID_MODIFICATION_ERR = 13;
// Introduced in DOM Level 2:
const unsigned short NAMESPACE_ERR = 14;
// Introduced in DOM Level 2:
const unsigned short INVALID_ACCESS_ERR = 15;