在我的 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 并理解它。