gpt4 book ai didi

java - 捕获两个异常并在 Java 中以不同方式处理每个异常

转载 作者:行者123 更新时间:2023-11-30 08:07:18 25 4
gpt4 key购买 nike

    public static void main(String[] args) throws IOException {
String inputFile = "PullFrom.txt";
String outputFile = "Output.txt";
Scanner input = new Scanner(new File(inputFile));
BufferedWriter out = new BufferedWriter(new FileWriter(outputFile, true));
int ID;

while (input.hasNextLine() && input.hasNextInt()) {
ID = input.nextInt();

for (int i = 0; i < 1; i++) {
try {
out.write("case "+ID+ ":");
out.newLine();
out.write("setRandomWalk(false);");
out.newLine();
out.write("break;");
out.newLine();
} catch (FileNotFoundException e) {
System.out.println("Can't Find " +inputFile );
e.printStackTrace();
} catch (IOException e) {
System.out.println("Can't create " + outputFile );
}
}
out.close();
input.close();}}}

我正在 try catch FileNotFoundException 但我的 BufferedWriter 要求我有 IOException,所以我试图同时捕获它们。

我在控制台中得到这个:

Exception in thread "main" java.io.FileNotFoundException: PullFrom.txt (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at reader.PullFrom.main(PullFrom.java:15)

如果有人可以向我解释一下 IOException 到底是什么,那就太好了,谢谢!

最佳答案

您应该发布生成问题的代码的最小 示例。这就是生成发布的异常所必需的:

public static void main(String[] args) throws IOException {
String inputFile = "PullFrom.txt";
String outputFile = "Output.txt";
Scanner input = new Scanner(new File(inputFile));
}

你在这里得到一个 FileNotFoundException 因为 PullFrom.txt 不存在。因为 FileNotFoundExceptionIOException 的子类,它由方法签名中的 throws IOException 处理。

因为您没有在此方法中处理异常,所以它是从 main 方法中抛出的,因此由未捕获的异常处理程序处理。如果您希望在异常情况下继续执行,则需要将 new Scanner(new File(inputFile)) 包围在 try/catch block 中。

关于java - 捕获两个异常并在 Java 中以不同方式处理每个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782022/

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