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」をご参照ください。