Java 如何处理文件关闭引发的异常?

Java 如何处理文件关闭引发的异常?,java,pdf,try-catch,pdfbox,catch-block,Java,Pdf,Try Catch,Pdfbox,Catch Block,我正在使用ApachePDFBox阅读一些PDF文件。当我使用完PDF后,我需要发布PDF文档。为此,我调用close()方法,该方法引发异常。该程序还允许编辑PDF,在这种情况下,可能会抛出异常,但我的程序只是关闭它们,不应该出错。在这种情况下,只捕获异常并将catch块保留为空是可以接受的,还是有更好的方法来处理它 例如: try { pdf.close(); catch { //empty } 当流关闭抛出异常时忽略是否可以接受 在大多数情况下是这样,但这实际上取决于上下

我正在使用ApachePDFBox阅读一些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-catch块,则可以使用
commons io
库中的
IOUtils

finally {
    IOUtils.closeQuietly(pdf);
}
这相当于以下内容

finally {
    try {
        if (closeable != null) {
            closeable.close();
        }
    } catch (IOException ioe) {
        // ignore
    }
}
有更多正确的方法可以做到这一点,但这是一个简单的方法。您实际上只需要一个catch子句,就可以有多个catch。谷歌“如何在java中使用Try/catch/finally”,你应该想出一些好东西

祝你好运

有更多正确的方法可以做到这一点,但这是一个简单的方法。您实际上只需要一个catch子句,就可以有多个catch。谷歌“如何在java中使用Try/catch/finally”,你应该想出一些好东西


祝你好运

添加了示例代码,没有意识到这样一个问题需要它添加了示例代码,没有意识到这样一个问题需要它。closequilly也是PDFBox的一部分:-)IOUtils.closequilly也是PDFBox的一部分:-)