我有这段代码,但是有一个错误, 我对java不好,所以我在这里发布了我的问题...这是我的代码
public static void SaveFile() throws IOException{
System.out.println("Saving File!");
FileWriter toTextFile = new FileWriter("output.txt");
for(x=0;x<new_num_book;x++){
toTextFile.write(name[x]);
}
toTextFile.close();
}
blah blah
else if(option == 5){
SaveFile();
}
问题是netbeans在访问SaveFile函数时声明了一个错误。请帮忙!感谢
答案 0 :(得分:2)
saveFile
会抛出IOException
,您需要处理它或将其传递给调用者。
请查看The try
Block了解详情
如果没有更多的背景,很难说你应该做什么。您可以在当前方法中处理异常......
else if(option == 5){
try {
SaveFile();
} catch (IOException exp) {
// Handle the exception, tell the user, roll back, what ever
// At the very least use exp.printStackTrace()
}
}
或将当前方法声明为像IOException
方法一样抛出SaveFile
您的SaveFile
方法也可能会使文件保持打开状态......
如果由于某种原因文件写入过程失败,则可能永远不会调用toTextFile.close
,相反,您应该利用try-finally
块,例如
public static void SaveFile() throws IOException{
System.out.println("Saving File!");
FileWriter toTextFile = null;
try {
toTextFile = new FileWriter("output.txt");
for(x=0;x<new_num_book;x++){
toTextFile.write(name[x]);
}
} finally {
try {
toTextFile.close();
} catch (Exception exp) {
}
}
}
或者如果您使用的是Java 7+,则可以使用try-with-resources功能,例如......
public static void SaveFile() throws IOException{
System.out.println("Saving File!");
try (FileWriter toTextFile = new FileWriter("output.txt")) {
for(x=0;x<new_num_book;x++){
toTextFile.write(name[x]);
}
}
}
您可能还希望阅读Lesson: Exceptions和Code Conventions for the Java TM Programming Language,以便人们更轻松地阅读您的代码并让您阅读其他人