Java : TransformerException (XML) 示例
Java 中的 TransformerException (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 TransformerException 方法的代码示例。
注解 :
- 本文可能使用了翻译软件以方便阅读。 另请查看英文原文。
简介
此类指定了转换过程中发生的异常情况。 (机器翻译)
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
请参阅下面的链接。