Java : TransformerException (XML) 示例

Java 中的 TransformerException (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 TransformerException 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

此类指定了转换过程中发生的异常情况。 (机器翻译)

Class diagram

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

// Result
// ↓
//TransformerException! : Cannot set the feature 'dummy' on this TransformerFactory.

Constructors

TransformerException (String message)

创建一个新的TransformerException。 (机器翻译)

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

TransformerException (String message, Throwable e)

将现有异常包装在 TransformerException 中。 (机器翻译)

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

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

TransformerException (String message, SourceLocator locator)

从消息和定位器创建一个新的 TransformerException。 (机器翻译)

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 TransformerException("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());

TransformerException (String message, SourceLocator locator, Throwable e)

将现有异常包装在 TransformerException 中。 (机器翻译)

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 TransformerException("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());

TransformerException (Throwable e)

创建一个包装现有异常的新 TransformerException。 (机器翻译)

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

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

Methods

Throwable getCause ()

返回此可抛出异常的原因,如果原因不存在或未知,则返回 null。 (机器翻译)

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

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

Throwable getException ()

此方法检索此异常包装的异常。 (机器翻译)

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

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

String getLocationAsString ()

获取字符串形式的位置信息。 (机器翻译)

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 TransformerException("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());

SourceLocator getLocator ()

方法 getLocator 检索指定错误发生位置的 SourceLocator 对象的实例。 (机器翻译)

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 TransformerException("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());

String getMessageAndLocation ()

获取附加了位置信息的错误消息。 (机器翻译)

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 TransformerException("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());

Throwable initCause (Throwable cause)

将此可抛出异常的原因初始化为指定值。 (机器翻译)

final var e = new TransformerException("abc");
System.out.println(e.getCause()); // null
System.out.println(e.getException()); // null

final var cause = new IOException("XYZ");
e.initCause(cause);
System.out.println(e.getCause()); // java.io.IOException: XYZ
System.out.println(e.getException()); // java.io.IOException: XYZ

void printStackTrace ()

打印错误起源方法的踪迹。 (机器翻译)

public class Main {

    public static void main(String[] args) {
        try {
            func1();
        } catch (TransformerException e) {
            e.printStackTrace();

            // Result
            // ↓
            // javax.xml.transform.TransformerException: abc
            //   Main.func2 ...
            //   Main.func1 ...
            //   Main.main ...
            // ...
        }
    }

    private static void func1() throws TransformerException {
        func2();
    }

    private static void func2() throws TransformerException {
        throw new TransformerException("abc");
    }
}

void printStackTrace (PrintStream s)

打印错误起源方法的踪迹。 (机器翻译)

public class Main {

    public static void main(String[] args) {
        try {
            func1();
        } catch (TransformerException e) {
            System.out.println("-- PrintStream --");
            e.printStackTrace(System.out);

            // Result
            // ↓
            //-- PrintStream --
            // javax.xml.transform.TransformerException: abc
            //   Main.func2 ...
            //   Main.func1 ...
            //   Main.main ...
            // ...
        }
    }

    private static void func1() throws TransformerException {
        func2();
    }

    private static void func2() throws TransformerException {
        throw new TransformerException("abc");
    }
}

void printStackTrace (PrintWriter s)

打印错误起源方法的踪迹。 (机器翻译)

public class Main {

    public static void main(String[] args) {
        try {
            func1();
        } catch (TransformerException e) {
            final var stringWriter = new StringWriter();
            try (final var printWriter = new PrintWriter(stringWriter)) {
                e.printStackTrace(printWriter);
            }

            System.out.println("-- PrintWriter --");
            System.out.println(stringWriter);

            // Result
            // ↓
            //-- PrintWriter --
            // javax.xml.transform.TransformerException: abc
            //   Main.func2 ...
            //   Main.func1 ...
            //   Main.main ...
            // ...
        }
    }

    private static void func1() throws TransformerException {
        func2();
    }

    private static void func2() throws TransformerException {
        throw new TransformerException("abc");
    }
}

void setLocator (SourceLocator location)

方法 setLocator 设置 SourceLocator 对象的实例,该实例指定发生错误的位置。 (机器翻译)

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 TransformerException("abc");

// null
System.out.println(e.getLocationAsString());

e.setLocator(locator);

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

Methods declared in Throwable

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

请参阅下面的链接。


相关文章

To top of page