Java 未报告的异常IOException必须被捕获或声明为引发

Java 未报告的异常IOException必须被捕获或声明为引发,java,exception,Java,Exception,我正在编写一个使用IOExceptions的程序,但遇到了一个我无法理解的错误。代码是 主要内容: 以及正在抛出的实际文件 import java.io.FileReader; import java.io.FileWriter; import java.io.BufferedReader; import java.io.PrintWriter; import java.io.IOException; import java.util.StringTokenizer; public class

我正在编写一个使用IOExceptions的程序,但遇到了一个我无法理解的错误。代码是

主要内容:

以及正在抛出的实际文件

import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.StringTokenizer;

public class findStuff {
  private double findSyl; //find Syl
  private double printRes; //print results

  public double NumSylG = 0; //number of syllables

    public double findSyl()throws IOException {

        BufferedReader inputStream = null;
        PrintWriter outputStream = null;

        try {
            String newLine = "";
            outputStream.println(newLine);
            String[] tokens = newLine.split(" ");

            char temp;

            for (int i = 0; i < newLine.length(); i++) {
              temp = newLine.charAt( i );

              if (Character.isLetter(temp) )
                 NumSylG++;
            }

        } catch (IOException e) {
             System.err.println("Caught IOException: " + e.getMessage());
        } finally {
            if (inputStream != null)
                inputStream.close();
            if (outputStream != null)
                outputStream.close();
        }

        return findSyl;
    }

    public double printRes() {
    System.out.printf("The total number of Syl in Gettysburg is: %.1f \n", NumSylG);

    return printRes;
    }
}
findStuff文件编译得很好。当我从main调用它时,就是当我得到那个错误时。 我仍然习惯于抓东西和扔东西,所以有人能告诉我我做错了什么吗?注意:出于隐私原因,我没有放置文件路径

public double findSyl()throws IOException
findSyl声明它抛出一个IOException,这是一个已检查的异常。这意味着findSyl的调用方必须捕获该异常,或者声明它也可能抛出该异常

你有两个选择:

一,

二,

在Java中,类名的可能重复应该是大写的。
public double findSyl()throws IOException
  public static void main(String[] args)
  {
     findStuff calc = new findStuff();
     try {
         calc.findSyl();
         calc.printRes();
     }
     catch (IOException ex) {
         // handle the exception here
     }  
  }
  public static void main(String[] args) throws IOException
  {
     findStuff calc = new findStuff();   
     calc.findSyl();
     calc.printRes();   
  }