java - 从txt文件读取时的错误处理

标签 java error-handling indexoutofboundsexception

这个问题在这里已经有了答案:





What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?

(26 个回答)


5年前关闭。




我的程序从 txt 文件中读取,然后将 txt 信息转换为汽车对象并将它们添加到数组列表中。

try {
     String filePath = "car.txt";
     File f = new File(filePath);
     Scanner sc = new Scanner(f);


     List<Car> car = new ArrayList<Car>();

     while(sc.hasNextLine()){
         String newLine = sc.nextLine();

         String[] details = newLine.split(" ");
         String brand = details[0];
         String model = details[1];
         double cost = Double.parseDouble(details[2]);
         Car c = new Car(brand, model, cost);
         Car.add(c);
     }

但是,如果 txt 文件中的一行不包含这三个组件,则它会崩溃。我将如何检查该行是否包含所有 3 个组件,如果不打印则终止?

堆栈跟踪 -
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Main.loadPerson(Main.java:31)
at Main.main(Main.java:12)

最佳答案

您需要检查 length详情为3,如果不退出如下图:

     String[] details = newLine.split(" ");
     if(details.length != 3) {
       System.out.println("Incorrect data entered !! Please try again !!! ");
      return;
      } else {
       String brand = details[0];
       String model = details[1];
       double cost = Double.parseDouble(details[2]);
       Car c = new Car(brand, model, cost);
       Car.add(c);
     }

关于java - 从txt文件读取时的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564588/

相关文章:

java - Hadoop 纱作业 : Wrong FS

java - 如何从内部匿名类中寻址匿名类的实例?

java - 在 Eclipse RCP 插件上加载 DLL 的首选方法是什么?

java - “找不到符号”或“无法解析符号”错误是什么意思?

sql - 找不到多部分标识符的错误

ruby - Ruby : How do I find provide informative error messages from my gem using caller_locations?

swift - 如何访问错误的非本地化描述?

java: 'string index out of range: -1' 异常使用 indexOf()

java - 将两个整数数组相加

java - MedianCalc() 方法给我 IndexOutOfBounds 异常