我正在尝试运行这个简单的程序,该程序从单独的文本文件中读取并打印出每一行。但是,当我尝试编译它时,它一直给我同样的错误:
story.java:11: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
x = new Scanner(new File("names.txt"));
这是我的代码:
import java.io.*;
import java.util.*;
public class story {
private static Scanner x;
public static void main(String[] args) {
String story = "";
x = new Scanner(new File("names.txt"));
while(x.hasNext()){
story = story + x;
}
System.out.println(story);
}
}
答案 0 :(得分:1)
此消息告诉您,您的main()
方法正在执行一些可能抛出FileNotFoundException
的内容,但您既没有捕获此异常,也没有声明{{1}可能抛出此类异常功能。
要更正它,请按以下方式声明main()
方法:
main()
答案 1 :(得分:0)
编程时,有正常的逻辑流程可以解决您的问题,第二个逻辑流程可以处理" Exceptional"意外情况。 Java使用类型public static void main(String[] args) throws FileNotFoundException {
和关键字Exception
来使代码位出现异常错误状态。
正在检查您的程序在编写时是否有能力处理异常的返回值。由于您没有处理异常返回值,因此不会编译它。
以下是您的代码,处理此throw
。密切关注Exception
和try
块结构,因为它是编写可以处理catch
引发的代码的方式。但是,不要为我处理异常的方式做出限制,因为如何处理异常的细节取决于您希望做什么。
Exception
还有另一种方法可以处理有时候合适的异常,即不处理"例外。执行此操作时,请将方法从import java.io.*;
import java.util.*;
public class story {
private static Scanner x;
public static void main(String[] args) {
String story = "";
try {
x = new Scanner(new File("names.txt"));
} catch (FileNotFoundException error) {
System.out.println("the program failed because \"names.txt\" was not found.");
return -1;
}
while(x.hasNext()){
story = story + x;
}
System.out.println(story);
}
}
更改为whatever the method was
。例如whatever the method was throws Exception
到public static void main(String[] args)
。
虽然这会处理编译器的抱怨,但是应该谨慎使用它,因为通过public static void main (String[] args) throws Exception
方法通过嵌套方法调用冒出的异常会使程序崩溃,通常没有可读的输出可能会导致错误更容易让人修复。
答案 2 :(得分:0)
将其更改为
public static void main(String[] args) throws Exception {
String story = "";
x = new Scanner(new File("names.txt"));
while(x.hasNext()){
story = story + x;
}
System.out.println(story);
}
OR
将try catch放入代码中
public static void main(String[] args) {
String story = "";
try {
x = new Scanner(new File("names.txt"));
while(x.hasNext()){
story = story + x;
}
System.out.println(story);
}
catch(Exception e) {
// handle
}
}
答案 3 :(得分:0)
每当使用文件对象时,您必须处理FileNotFoundException的可能性,这种情况在您指定的文件不存在时发生。
要解决这个问题,只需在主标题中说throws Exception
,或使用try / catch块。
public static void main(String[] args) throws Exception {
或
public static void main(String[] args) {
String story = "";
try
{
x = new Scanner(new File("names.txt"));
while(x.hasNext()){
story = story + x;
}
System.out.println(story);
}
catch(Exception e)
{
System.out.println("Error: File not found!");
}
}
答案 4 :(得分:0)
1)您需要将它们放在try catch块中。 2)指定“names.txt”的路径。 3)我的代码如下:
String story = "";
try {
x = new Scanner(new File("/Users/Workspace/names.txt"));
while(x.hasNext()){
System.out.println(story = story+x.next());
}
System.out.println(story);
} catch (FileNotFoundException e){
e.printStackTrace();
}
}