Java : DOMException (XML) - API使用例
DOMException (Java SE 23 & JDK 23) の使い方まとめです。
ほとんどのメソッドにサンプルコードがあります。
APIドキュメントのおともにどうぞ。
概要
DOM操作によって例外が発生するのは、ごく「例外的な」場合のみです。たとえば、論理上の問題、データの損失、実装の安定性の欠如などが原因で操作を実行できない場合にのみ、例外が発生します。 通常の処理状況では、DOMメソッドは例外ではなく、特定のエラー値を返します(NodeListの使用時における範囲外(out-of-bound)エラーなど)。
DOMException は非チェック例外です。
XML の DOM操作でエラーが発生したときにスローされます。
final var builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
final var document = builder.newDocument();
final var root = document.createElement("root");
document.appendChild(root);
try {
root.appendChild(root);
} catch (DOMException e) {
System.out.println(e);
}
// 結果
// ↓
//org.w3c.dom.DOMException:
// HIERARCHY_REQUEST_ERR: 許可されていない場所でノードを挿入しようとしました。
フィールド
short code
final var e = new DOMException(DOMException.INVALID_STATE_ERR, "abc");
System.out.println(e); // org.w3c.dom.DOMException: abc
System.out.println(e.code); // 11
static final short DOMSTRING_SIZE_ERR
指定されたテキスト範囲がDOMString内に収まらない場合。
System.out.println(DOMException.DOMSTRING_SIZE_ERR); // 2
static final short HIERARCHY_REQUEST_ERR
Nodeが所属先以外に挿入された場合。
System.out.println(DOMException.HIERARCHY_REQUEST_ERR); // 3
static final short INDEX_SIZE_ERR
インデックスまたはサイズが負の数または許容値より大きい場合。
System.out.println(DOMException.INDEX_SIZE_ERR); // 1
static final short INUSE_ATTRIBUTE_ERR
すでにほかで使用されている属性を追加しようとした場合。
System.out.println(DOMException.INUSE_ATTRIBUTE_ERR); // 10
static final short INVALID_ACCESS_ERR
パラメータまたは操作が基本となるオブジェクトによってサポートされていない場合。
System.out.println(DOMException.INVALID_ACCESS_ERR); // 15
static final short INVALID_CHARACTER_ERR
XML名などに不正な文字列、無効な文字列が指定された場合。
System.out.println(DOMException.INVALID_CHARACTER_ERR); // 5
static final short INVALID_MODIFICATION_ERR
基本となるオブジェクト型を変更しようとした場合。
System.out.println(DOMException.INVALID_MODIFICATION_ERR); // 13
static final short INVALID_STATE_ERR
使用できないオブジェクトを使用しようとした場合。
System.out.println(DOMException.INVALID_STATE_ERR); // 11
static final short NAMESPACE_ERR
不正な名前空間を使ってオブジェクトを作成または変更しようとした場合。
System.out.println(DOMException.NAMESPACE_ERR); // 14
static final short NO_DATA_ALLOWED_ERR
データをサポートしないNodeに対してデータが指定された場合。
System.out.println(DOMException.NO_DATA_ALLOWED_ERR); // 6
static final short NO_MODIFICATION_ALLOWED_ERR
変更が許可されていないオブジェクトを変更しようとした場合。
System.out.println(DOMException.NO_MODIFICATION_ALLOWED_ERR); // 7
static final short NOT_FOUND_ERR
コンテキスト内に存在しないNodeを参照しようとした場合。
System.out.println(DOMException.NOT_FOUND_ERR); // 8
static final short NOT_SUPPORTED_ERR
実装が要求されたオブジェクト型または操作をサポートしていない場合。
System.out.println(DOMException.NOT_SUPPORTED_ERR); // 9
static final short SYNTAX_ERR
不正な文字列、無効な文字列が指定された場合。
System.out.println(DOMException.SYNTAX_ERR); // 12
static final short TYPE_MISMATCH_ERR
オブジェクトの型が、オブジェクトに関連するパラメータの予想される型と互換性がない場合。
System.out.println(DOMException.TYPE_MISMATCH_ERR); // 17
static final short VALIDATION_ERR
insertBeforeやremoveChildといったメソッドへの呼出しで、「部分的有効性」の面でNodeが無効になる場合は、この例外がスローされ、操作は完了しません。
System.out.println(DOMException.VALIDATION_ERR); // 16
static final short WRONG_DOCUMENT_ERR
Nodeが作成元文書以外(このノードをサポートしない文書)で使用された場合。
System.out.println(DOMException.WRONG_DOCUMENT_ERR); // 4
コンストラクタ
DOMException (short code, String message)
final var e = new DOMException(DOMException.INVALID_STATE_ERR, "abc");
System.out.println(e); // org.w3c.dom.DOMException: abc
System.out.println(e.code); // 11
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。