当前位置: 首页 > 面试题库 >

为什么我的程序上“必须被抓住或声明要扔”?

鞠征
2023-03-14
问题内容

我已经在这个程序上工作了一段时间了,我的大脑被炸了。我可以向其他人寻求帮助。

我正在尝试制作一个程序来逐行读取文本文件,并且将每一行都制成一个,ArrayList以便可以访问每个令牌。我究竟做错了什么?

import java.util.*;
import java.util.ArrayList;
import java.io.*;
import java.rmi.server.UID;
import java.util.concurrent.atomic.AtomicInteger;

public class PCB {
    public void read (String [] args) {
        BufferedReader inputStream = null;

        try {
            inputStream = new BufferedReader(new FileReader("processes1.txt"));

            String l;
            while ((l = inputStream.readLine()) != null) {
                write(l);
            }
        }
        finally {
            if (inputStream != null) {
                inputStream.close();
            }
        }
    }

    public void write(String table) {
        char status;
        String name;
        int priority;

        ArrayList<String> tokens = new ArrayList<String>();

        Scanner tokenize = new Scanner(table);
        while (tokenize.hasNext()) {
            tokens.add(tokenize.next());
        }

        status = 'n';
        name = tokens.get(0);
        String priString = tokens.get(1);
        priority = Integer.parseInt(priString);

        AtomicInteger count = new AtomicInteger(0);
        count.incrementAndGet();
        int pid = count.get();

        System.out.println("PID: " + pid);
    }
}

我要戳一下眼球。我遇到了三个错误:

U:\Senior Year\CS451- Operating Systems\Project1 PCB\PCB.java:24: unreported exception java.io.IOException; must be caught or declared to be thrown
            inputStream.close();}
                             ^
U:\Senior Year\CS451- Operating Systems\Project1 PCB\PCB.java:15: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
        inputStream = new BufferedReader(new FileReader("processes1.txt"));
                                         ^
U:\Senior Year\CS451- Operating Systems\Project1 PCB\PCB.java:18: unreported exception java.io.IOException; must be caught or declared to be thrown
        while ((l = inputStream.readLine()) != null) {
                                        ^

我究竟做错了什么?


问题答案:

在大多数情况下,当您使用Java使用I / O时,您必须处理IOException,这可能在您读/写甚至关闭流时随时发生。

您必须将敏感块放入try // catch块中,并在此处处理异常。

例如:

try{
    // All your I/O operations
}
catch(IOException ioe){
    //Handle exception here, most of the time you will just log it.
}

资源:

  • oracle.com-课程:异常


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

  • 问题内容: 有时我们有几个类,这些类的某些方法具有相同的签名,但是与声明的Java接口不对应。例如,和(在中的其他几个 )中都有一个方法 现在,假设我希望对具有该方法的对象进行一些操作。然后,我想有一个接口(或者自己定义),例如 这样我可以写: 但是,可悲的是,我不能: 此演员表将是非法的。编译器 知道 这 是不是 一个,因为类没有宣布实现该接口...... 然而“实际上”实现它 。 有时这会带来

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

  • C++20概念的一个特点是,在某些情况下,您必须编写。例如,[expr.prim.req]/3中的这个示例:

  • my-app.ear my-ejb.jar my-webapp.war lib my-lib.jar 为了构造几何图形和存储数据,my-ejb需要oracle库与oracle spatial一起工作。JBoss8(wildfly)正确地加载了oracle的模块。 当我启动应用程序时,我收到。 当我启动应用程序时,我收到。我知道,当我从resultset读取数据时,resultset中的对象是类的实

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