我很确定我的问题存在于某处的 try 块中,但我似乎无法确定它。我正在做的是从文件中读取,并检查输入。如果输入大于 0,我想增加 goodData,如果不是,它应该为值 <0 抛出 BPIllegalValueException,或者对于不是整数的东西抛出 InputMismatchException。我希望你们能帮忙。
编辑:教授说明:
在您的程序中,您需要两个异常来处理两种不良数据。对于非整数读取,可以使用 nextInt() 方法从文件中读取一个整数,如果数据不是整数,则会抛出 InputMismatchException。您的程序必须捕获此异常。要处理负读取,您可能需要声明自己的异常类:BPIllegalValueException(您应该编写包含该类的 BPIllegalValueException.java),并在读取负值时抛出此异常。注意:当读取到错误数据时,您的程序不应终止。因此,您必须使用 try/catch 块来处理不良数据。您的程序应打印(在屏幕上)良好 BP 读数的数量和不良数据的数量。
我的代码如下:
import java.io.*;
import java.util.*;
public class DemoEx {
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("BP.txt");
BufferedReader br = new BufferedReader(fr);
Scanner in = new Scanner(new FileReader("BP.txt"));
int badData = 0;
int goodData = 0;
int data;
String str = "";
while((str = br.readLine()) != null)
{
try
{
data = in.nextInt();
if(data>0)
goodData++;
else if(data<0)
throw new BPIllegalValueException(data);
else
throw new InputMismatchException();
}
catch(InputMismatchException ex)
{
badData++;
}
catch(BPIllegalValueException ex)
{
badData++;
}
}
System.out.println("The number of good data: " + goodData);
System.out.println("The number of bad data: " + badData);
}
}