当前位置: 首页 > 知识库问答 >
问题:

Java:未报告的异常java.io.FileNotFoundException;必须抓取或声明抛出[副本]

司马建柏
2023-03-14
import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(new File("C:\\Users\\User\\Selenium\\scrapjv\\interface\\NASDAQlist.txt"));
        List<String> symbolList = new ArrayList<String>();
        while (sc.hasNextLine()) {
            symbolList.add(sc.nextLine());
        }

        PrintWriter logput = new PrintWriter("C:\\Users\\User\\Selenium\\scrapjv\\interface\\log.txt", "UTF-8");
        for (String symb : symbolList) {
            System.out.println(symb);
        }
        logput.close();
    }
}

共有1个答案

晏志明
2023-03-14

如果找不到文件,您正在调用的某些方法可以抛出FileNotFoundException:

 public Scanner(File source) throws FileNotFoundException
 public PrintWriter(String fileName) throws FileNotFoundException

Java的编译器检查一些抛出的异常(RuntimeException及其子类以外的异常)是否被捕获或声明抛出。否则编译将失败。这有助于在程序运行之前,在编译时发现一些错误。

一种选择是声明调用函数以抛出异常或超类:

 public static void main(String[] args) throws FileNotFoundException {
    File inFile = new File("C:\\Users\\User\\Selenium\\scrapjv\\interface\\NASDAQlist.txt");
    try {
        Scanner sc = new Scanner( inFile );
        List<String> symbolList = new ArrayList<String>();
        while (sc.hasNextLine()) {
            symbolList.add(sc.nextLine());
        }
    }
    catch ( FileNotFoundException e ) {
        System.out.println("Could not find file: " + inFile.getAbsolutePath());
    }
 类似资料:
  • 问题内容: 我尝试编译以下内容,但在m16h(x)周围得到以下内容: 不知道为什么。我已经尝试过各种方法,但是看来我做得对。 问题答案: 方法的签名表明很容易引发Exception。 这意味着异常之一: 必须由呼叫者处理 } catch (Exception e) { e.printStackTrace(); } 必须由呼叫者重新抛出

  • 问题内容: 我有下面给出的代码。但是,当我尝试编译代码时,出现以下错误。 我在代码中捕获了以上异常。我不知道为什么会这样。 问题答案: 该语句在外部,将其放在try块中以有效地被catch块捕获

  • 我有一个方法被定义为: 编译器抱怨说,“未报告的异常政策异常;必须被捕获或声明为被抛出。我不知道为什么它建议我可以抛出,但“抛出”就在方法签名中。 被定义为: 当我尝试在try…catch中封装调用时,错误会保留,并会引发另一个错误,该错误表示try主体中从未抛出异常。我该如何补救?Am使用javase7和netneans 8

  • 问题内容: 我正在尝试创建一个将字符串输出到文本文件的简单程序。使用在这里找到的代码,我整理了以下代码: J-grasp向我抛出以下错误: 由于我刚接触Java,所以我不知道这意味着什么。有人能指出我正确的方向吗? 问题答案: 您没有告诉编译器,如果文件不存在,则有可能抛出 a 将被抛出。 试试这个

  • 问题内容: 我想打开一个文件并对其进行扫描以打印其令牌,但出现错误:未报告的异常java.io.FileNotFoundException; 必须被捕获或声明为抛出Scanner stdin = new Scanner(file1);该文件与正确的名称位于同一文件夹中。 问题答案: 您正在使用的构造函数将引发FileNotFoundException,您必须在编译时捕获该异常。 上面的表示法(在括

  • 问题内容: 尝试编译以下代码时遇到此错误。我想知道我做错了什么。 问题答案: 您要么需要在方法中 捕获 异常: 或 声明 抛出方法: