在我的 Java 应用程序的代码之一中,我有一个 try-catch-finally 块,其中 try 块创建一些输入和输出流,如果出现问题,我将关闭 finally 中任何先前打开的流。

finally
{
    if(inputStream != null)
        inputStream.close();
    if(outputStream != null)
        outputStream.close();
}

但是 Eclipse 中的 <stream>.close() 行在该行的代码中显示了“未处理的异常 IOException”的错误,并表明解决方案是在 try/catch 块中包含另一个 finally,这在编程实践中似乎很糟糕,我不想要在 finally 块中。

我的问题是:是否可以在 Eclipse 中删除此错误并仅在需要时使用 try/catch 而不是 eclipse 告诉我执行 try/catch 添加。 (因为我已经试图通过尽可能用 try/catch 替换 if/else 来避免异常)。

最佳答案

这不是 Eclipse 错误, 而是 Java 编译器错误 。 Eclipse 只是为您报告 Java 编译错误。没有办法“关闭它”,因为 代码不会在没有 try/catch 子句的情况下编译 。它是 Java 中的一项安全功能,可强制您处理常见抛出的异常。

方法在其签名中有异常。例如,InputStream.close() 抛出一个 IOException,迫使您在 try/catch 块中处理它。

public void close() throws IOException {
    ...

引发异常是一种告诉程序发生了必须解决的重大问题的方式。



不,这是不可能的。



您通常不应该尝试用 try/catch 块替换 if/else 块。它们是具有不同目的的两个不同特征。

异常是一个基本的 Java 特性。 Read about it 并理解它。

10-07 19:27
查看更多