我正在使用 Apache PDFBox 来阅读一些 PDF 文件。完成 PDF 后,我需要发布 PDF 文档。为此,我调用了抛出异常的 close() 方法。该程序还允许编辑 PDF,在这种情况下可能会引发异常,但我的程序只是关闭它们,这不应该出错。在这种情况下,只捕获异常并将捕获块留空是可以接受的,还是有更好的方法来处理它?
例如:
try {
pdf.close();
catch {
//empty
}
我正在使用 Apache PDFBox 来阅读一些 PDF 文件。完成 PDF 后,我需要发布 PDF 文档。为此,我调用了抛出异常的 close() 方法。该程序还允许编辑 PDF,在这种情况下可能会引发异常,但我的程序只是关闭它们,这不应该出错。在这种情况下,只捕获异常并将捕获块留空是可以接受的,还是有更好的方法来处理它?
例如:
try {
pdf.close();
catch {
//empty
}
当流关闭引发异常时忽略是否可以接受?
在大多数情况下,它是,但它确实取决于上下文。如果您决定不处理关闭异常并希望避免额外的 try-catch 块,那么您可以使用IOUtils
from commons-io
library.
finally {
IOUtils.closeQuietly(pdf);
}
这等价于以下
finally {
try {
if (closeable != null) {
closeable.close();
}
} catch (IOException ioe) {
// ignore
}
}
try {
//code to catch
} catch (IOException ex) {//specific catch
ex.printStackTrace();
} catch (Exception e) {//Catch errors lazily, This will catch any exception within the try that is rooted from the Exception class.
e.printStackTrace();
}
有更合适的方法可以做到这一点,但这是一种简单的方法。你真的只需要一个catch子句,你可以有多个catch。谷歌“如何在 java 中使用 Try/catch/finally”,你应该想出一些好东西。
祝你好运!