Java 未报告的异常IOException必须被捕获或声明为引发
我正在编写一个使用IOExceptions的程序,但遇到了一个我无法理解的错误。代码是 主要内容: 以及正在抛出的实际文件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
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();
}