gpt4 book ai didi

java - 为什么 catch block 不运行?

转载 作者:行者123 更新时间:2023-12-02 07:45:21 25 4
gpt4 key购买 nike

我有以下方法将数组写入文本文件。如果给出了现有的文本文件,那么它可以正常工作,但是如果给出了不存在的文件,则 try-catch 都不会运行代码来重新启动该方法。我没有收到任何错误或任何错误,但 catch block 不会运行。我认为我不需要捕获 IOException,但如果我不这样做,代码甚至不会运行。是的,有人知道我怎样才能让它发挥作用吗?

编辑:忘记提及 getInput 方法提示用户输入。

private static void openFileWriter(String prompt, boolean append, int wordsperline, String[] story) {
try {
try {
save = new PrintWriter(new FileWriter(getInput(prompt), append));
wordsperline = 0;
save.println("");
save.println("");
save.println("Story start");
for (int x = 0; x <= story.length-1; x++) {
if (story[x] == null) {
} else {
if (wordsperline == 21) {
save.println(story[x]);
wordsperline = 0;
} else {
save.print(story[x]);
wordsperline++;
}
}
}
save.close();
} catch (FileNotFoundException e1) {
openFileWriter("File not found", append,wordsperline,story);
}
} catch (IOException e) {
// TODO Auto-generated catch block
openFileWriter("File not found", append,wordsperline,story);
}
}

最佳答案

如果文件不存在,则无法写入它,在您的 catch block 中,您试图将错误写入不存在的文件。另外,我认为这里只需要 1 个 catch block ,并注意其中一个 if 语句 block 是空的。

试试这个:

try
{
save = new PrintWriter(new FileWriter(getInput(prompt), append));
wordsperline = 0;
save.println("");
save.println("");
save.println("Story start");
for(int x = 0; x <= story.length-1; x++)
{
if (story[x] == null)
{
}
else
{
if (wordsperline == 21)
{
save.println(story[x]);
wordsperline = 0;
}
else
{
save.print(story[x]);
wordsperline++;
}
}
}
save.close();
}
catch (FileNotFoundException e1)
{
System.err.println(e1.getMessage());
}
catch (IOException e)
{
System.err.println(e.getMessage());
}

关于java - 为什么 catch block 不运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com