我继续得FileNotFoundException
,即使我扔了它。任何帮助将不胜感激:))
这是代码:
import java.util.*;
import java.io.*;
public class kt_6_2 {
public static void main(String[] args) {
File file = new File("magicSquare.txt");
fileRead(file);
}
static void fileRead (File dummyFile) throws FileNotFoundException {
Scanner scanner = new Scanner(dummyFile);
String[] squareLines = new String[3];
for (int a = 0; a < 3; a++) {
squareLines[a] = scanner.nextLine();
scanner.nextLine();
}
System.out.println(squareLines[2]);
}
}
Ninjaedit-错误消息:
kt_6_2.java:7: error: unreported exception FileNotFoundException; must be caught
or declared to be thrown
fileRead(file);
^
1 error
答案 0 :(得分:4)
由于您的主要方法是调用fileRead()
方法。而不是处理异常,你的fileRead()方法决定抛出异常。
因此,在异常情况下,一旦从fileRead()
方法抛出它,就应该在main()
方法中捕获它。但是,你的main()可以进一步抛出这个异常。
你需要写为
public static void main(String[] args) throws FileNotFoundException {
....
或者如果你想处理异常,你应该写为:
public static void main(String[] args) {
File file = new File("magicSquare.txt");
try{
fileRead(file);
} catch (FileNotFoundException ex) {
//exception handling code
}
}
答案 1 :(得分:1)
必须被抓住或宣布被抛出
你究竟在这里不明白什么?
您使用可以抛出fileRead
的方法FileNotFoundException
,因此您必须捕获它,或者向上移动它,因此您的main
方法需要一个throws子句。
但后者的选择当然是一个糟糕的选择。所以简单地将readFile
invokation包装在try / catch块中。