如何处理文件关闭抛出的异常?

How to deal with an exception thrown by file close?

我正在使用 Apache PDFBox 阅读一些 PDF 文件。完成 PDF 后,我需要发布 PDF 文档。为此,我调用了抛出异常的 close() 方法。该程序还允许编辑 PDF,在这种情况下可能会抛出异常,但我的程序只是关闭它们,这不应该出错。在这种情况下,是否可以只捕获异常并将 catch 块留空,或者是否有更好的处理方法?

例如:

try {
    pdf.close();
catch {
    //empty
}

当流关闭抛出异常时忽略它是否可以接受?

在大多数情况下是这样,但这实际上取决于上下文。如果您决定不处理关闭异常并希望避免额外的 try-catch 块,那么您可以使用 commons-io 库中的 IOUtils

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。 Google "how to use Try/catch/finally in java" 你应该想出一些好东西。

祝你好运!