広告

Java : SAXParseException (XML) - API使用例

SAXParseException (Java SE 23 & JDK 23) の使い方まとめです。
ほとんどのメソッドにサンプルコードがあります。
APIドキュメントのおともにどうぞ。


概要

XML構文解析エラーまたは警告をカプセル化します。

クラス構成

SAXParseException はチェック例外です。
XMLの構文解析でエラーまたは警告が発生したときにスローされます。

final var xml = """
        <root><<<root>
        """;

final var factory = DocumentBuilderFactory.newInstance();
final var builder = factory.newDocumentBuilder();

try {
    var _ = builder.parse(new ByteArrayInputStream(xml.getBytes()));
} catch (SAXException e) {
    System.out.println(e);
}

// 結果
// ↓
//org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8;
// 要素のコンテンツは、整形式の文字データまたはマークアップで構成されている必要があります。

コンストラクタ

SAXParseException (String message, String publicId, String systemId, int lineNumber, int columnNumber)

新しいSAXParseExceptionを生成します。

final var e = new SAXParseException("message!", "public id!", "system id!", 123, 456);

System.out.println(e.getMessage()); // message!
System.out.println(e.getPublicId()); // public id!
System.out.println(e.getSystemId()); // system id!
System.out.println(e.getLineNumber()); // 123
System.out.println(e.getColumnNumber()); // 456

SAXParseException (String message, String publicId, String systemId, int lineNumber, int columnNumber, Exception e)

組込み例外を使って新しいSAXParseExceptionを生成します。

final var cause = new IOException("XYZ");
final var e = new SAXParseException(
        "message!", "public id!", "system id!", 123, 456, cause);

System.out.println(e.getMessage()); // message!
System.out.println(e.getPublicId()); // public id!
System.out.println(e.getSystemId()); // system id!
System.out.println(e.getLineNumber()); // 123
System.out.println(e.getColumnNumber()); // 456
System.out.println(e.getException()); // java.io.IOException: XYZ

SAXParseException (String message, Locator locator)

メッセージとLocatorから新しいSAXParseExceptionを生成します。

final var e = new SAXParseException("abc", new LocatorImpl());
System.out.println(e); // org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; abc

SAXParseException (String message, Locator locator, Exception e)

既存の例外をSAXParseExceptionにラップします。

final var cause = new IOException("XYZ");
final var e = new SAXParseException("abc", new LocatorImpl(), cause);
System.out.println(e); // org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; abc
System.out.println(e.getException()); // java.io.IOException: XYZ

メソッド

int getColumnNumber ()

例外の発生元テキストの終わりの列番号です。

final var e = new SAXParseException("message!", "public id!", "system id!", 123, 456);

System.out.println(e.getMessage()); // message!
System.out.println(e.getPublicId()); // public id!
System.out.println(e.getSystemId()); // system id!
System.out.println(e.getLineNumber()); // 123
System.out.println(e.getColumnNumber()); // 456

int getLineNumber ()

例外の発生元テキストの終わりの行番号です。

final var e = new SAXParseException("message!", "public id!", "system id!", 123, 456);

System.out.println(e.getMessage()); // message!
System.out.println(e.getPublicId()); // public id!
System.out.println(e.getSystemId()); // system id!
System.out.println(e.getLineNumber()); // 123
System.out.println(e.getColumnNumber()); // 456

String getPublicId ()

例外の発生元エンティティの公開識別子を取得します。

final var e = new SAXParseException("message!", "public id!", "system id!", 123, 456);

System.out.println(e.getMessage()); // message!
System.out.println(e.getPublicId()); // public id!
System.out.println(e.getSystemId()); // system id!
System.out.println(e.getLineNumber()); // 123
System.out.println(e.getColumnNumber()); // 456

String getSystemId ()

例外の発生元エンティティのシステム識別子を取得します。

final var e = new SAXParseException("message!", "public id!", "system id!", 123, 456);

System.out.println(e.getMessage()); // message!
System.out.println(e.getPublicId()); // public id!
System.out.println(e.getSystemId()); // system id!
System.out.println(e.getLineNumber()); // 123
System.out.println(e.getColumnNumber()); // 456

String toString ()

toStringをオーバーライドして、より詳細なエラー・メッセージを提供します。

final var e = new SAXParseException("message!", "public id!", "system id!", 123, 456);
final var str = e.toString();
System.out.println(str);

// 結果
// ↓
//org.xml.sax.SAXParseException
// publicId: public id!; systemId: system id!;
// lineNumber: 123; columnNumber: 456; message!

SAXExceptionで宣言されたメソッド

getCause, getException, getMessage

Java API 使用例 : SAXException」をご参照ください。

Throwableで宣言されたメソッド

addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace

Java API 使用例 : Throwable」をご参照ください。


関連記事

ページの先頭へ