📅  最后修改于: 2023-12-03 15:31:58.337000             🧑  作者: Mango
Java中的Throwable类提供了一些可抛出的异常处理方法,其中包含addSuppressed()方法。这个方法可以用来在finally块中记录异常信息,以便在主异常发生时将其打印出来。
addSuppressed()方法的格式如下:
public final void addSuppressed(Throwable exception)
以下是一个使用addSuppressed()方法的示例:
public class Example {
public static void main(String[] args) {
FileOutputStream output1 = null;
FileOutputStream output2 = null;
try {
output1 = new FileOutputStream("file1.txt");
output1.write('a');
throw new Exception("Oops!");
} catch (Exception e) {
try {
output2 = new FileOutputStream("file2.txt");
output2.write('b');
} catch (Exception e2) {
e.addSuppressed(e2);
}
throw e;
} finally {
try {
if (output1 != null) {
output1.close();
}
if (output2 != null) {
output2.close();
}
} catch (Exception e) {
System.out.println("Error closing output stream: " + e.getMessage());
}
}
}
}
在这个示例中,我们试图将字符“a”写入文件file1.txt,但是由于某种原因抛出了一个异常。在catch块中,我们尝试将字符“b”写入另一个文件file2.txt。如果这个操作导致了另一个异常,我们使用addSuppressed()方法将它记录下来。
无论是file1.txt的写入操作还是file2.txt的写入操作失败,我们都会向上传递这个异常。在finally块中,我们会关闭文件句柄并打印出所有已记录的异常。
addSuppressed()方法是一个方便的异常处理机制,可以在finally块中记录所有的异常。无论是在开发新应用程序还是维护现有应用程序时都非常有用。