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