広告

Java : TransformerConfigurationException (XML) - API使用例

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


概要

重大な構成エラーを示します。

クラス構成

TransformerConfigurationException はチェック例外です。
XML を変換する Transformer などでエラーが発生するとスローされます。

try {
    final var factory = TransformerFactory.newInstance();
    factory.setFeature("dummy", true);
} catch (TransformerException e) {
    System.out.println(e);
}

// 結果
// ↓
//javax.xml.transform.TransformerConfigurationException:
// 機能'dummy'をこのTransformerFactoryに設定できません。

コンストラクタ

TransformerConfigurationException ()

詳細メッセージなしで新しいTransformerConfigurationExceptionを作成します。

final var e = new TransformerConfigurationException();
System.out.println(e); // javax.xml.transform.TransformerConfigurationException: Configuration Error

TransformerConfigurationException (String msg)

エラー・メッセージとして指定されたString を使用して新しいTransformerConfigurationExceptionを作成します。

final var e = new TransformerConfigurationException("abc");
System.out.println(e); // javax.xml.transform.TransformerConfigurationException: abc

TransformerConfigurationException (String msg, Throwable e)

Exceptionの基本原因と詳細メッセージを指定して、新しいTransformerConfigurationExceptionを作成します。

final var cause = new IOException("XYZ");
final var e = new TransformerConfigurationException("abc", cause);

System.out.println(e); // javax.xml.transform.TransformerConfigurationException: abc
System.out.println(e.getCause()); // java.io.IOException: XYZ

TransformerConfigurationException (String message, SourceLocator locator)

メッセージとロケータから新しいTransformerConfigurationExceptionを作成します。

final var locator = new SourceLocator() {
    @Override
    public String getPublicId() {
        return "public id!";
    }

    @Override
    public String getSystemId() {
        return "system id!";
    }

    @Override
    public int getLineNumber() {
        return 123;
    }

    @Override
    public int getColumnNumber() {
        return 456;
    }
};
final var e = new TransformerConfigurationException("abc", locator);
System.out.println(e.getLocator() == locator); // true

// ; SystemID: system id!; Line#: 123; Column#: 456
System.out.println(e.getLocationAsString());

// abc; SystemID: system id!; Line#: 123; Column#: 456
System.out.println(e.getMessageAndLocation());

TransformerConfigurationException (String message, SourceLocator locator, Throwable e)

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

final var locator = new SourceLocator() {
    @Override
    public String getPublicId() {
        return "public id!";
    }

    @Override
    public String getSystemId() {
        return "system id!";
    }

    @Override
    public int getLineNumber() {
        return 123;
    }

    @Override
    public int getColumnNumber() {
        return 456;
    }
};
final var cause = new IOException("XYZ");
final var e = new TransformerConfigurationException("abc", locator, cause);

System.out.println(e.getLocator() == locator); // true
System.out.println(e.getCause()); // java.io.IOException: XYZ

// ; SystemID: system id!; Line#: 123; Column#: 456
System.out.println(e.getLocationAsString());

// abc; SystemID: system id!; Line#: 123; Column#: 456
System.out.println(e.getMessageAndLocation());

TransformerConfigurationException (Throwable e)

エラーのException基本原因を指定して、新しいTransformerConfigurationExceptionを作成します。

final var cause = new IOException("XYZ");
final var e = new TransformerConfigurationException(cause);

System.out.println(e); // javax.xml.transform.TransformerConfigurationException: java.io.IOException: XYZ
System.out.println(e.getCause()); // java.io.IOException: XYZ
System.out.println(e.getException()); // java.io.IOException: XYZ

TransformerExceptionで宣言されたメソッド

getCause, getException, getLocationAsString, getLocator, getMessageAndLocation, initCause, printStackTrace, printStackTrace, printStackTrace, setLocator

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

Throwableで宣言されたメソッド

addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, setStackTrace, toString

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


関連記事

ページの先頭へ