这是给出错误的代码 -
try(StringWriter stringWriter = new StringWriter()) {
IDE 抱怨来自自动关闭资源的未处理异常:java.io.IOException是否有必要在这里在构造函数中传递一些东西?
因为close
方法(在StringWriter
中(声明为:
public void close() throws IOException
您的资源试用将自动调用它。
添加 catch 块;
try(StringWriter stringWriter = new StringWriter()) {
//Do something
} catch(IOException e){
e.printStackTrace();
}
正如抱怨的msg所建议的那样:您有一个来自自动关闭资源:java.io.IOException的未处理异常,因此您的代码没有完全编写。
你需要一个陷阱:
try (StringWriter stringWriter = new StringWriter()) {
//Do something
} catch (IOException e) {
//TODO
e.printStackTrace();
}
在 Java 中,检查的异常应该由可能抛出这些异常的函数声明(使用 throws 子句(或处理(使用 catch,finally 块(。您的代码也不执行,这就是您收到编译器错误的原因。
顺便说一句,请参阅此链接。