gpt4 book ai didi

java - 相应的 try block 中不会抛出异常

转载 作者:行者123 更新时间:2023-12-02 04:16:16 24 4
gpt4 key购买 nike

我正在尝试执行下面的代码。但我收到编译时错误。我编写了下面的代码来显示文件“myfile.txt”的内容。但实际上没有文件“myfile.txt”。那么在运行时应该抛出异常“FileNotFound”。但下面的程序未编译。

为什么我会收到编译时错误?

代码:

import java.io.*;
class rethrow {
public static void main(String args[]) {
rethrow rt = new rethrow();
try {
rt.m1();
} catch (FileNotFoundException FNFE) {
FNFE.printStackTrace();
}
}

void m1() {
try {
FileInputStream fin = new FileInputStream("myfile.txt");
System.out.println("file contents");
int ch;
while ((ch = fin.read()) != -1)
System.out.println((char) ch);
fin.close();
} catch (FileNotFoundException FNFE) {
FNFE.printStackTrace();
throw FNFE;
} catch (IOException IOE) {
IOE.printStackTrace();
}
}
}

------------------------------------`-------------------- --------输出:

rethrow.java:11: exception java.io.FileNotFoundException is never thrown in bod
y of corresponding try statement
catch(FileNotFoundException FNFE)
^

rethrow.java:30: unreported exception java.io.FileNotFoundException; must be ca
ught or declared to be thrown
throw FNFE;
^
2 errors

最佳答案

您必须在方法m1中添加 throws 子句:

  void m1() throws FileNotFoundException {

否则,您的 main 方法中存在 FileNotFoundException 无法访问的 catch block ,方法 m1< 中存在未处理的异常类型 FileNotFoundException/.

此更改不需要捕获 m1 中的异常。

关于java - 相应的 try block 中不会抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279012/

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